您可以使用以下代码示例来解决此问题:
var myDoc = app.activeDocument;
// 获取所有页面的超链接
var myHLinks = myDoc.hyperlinks;
// 获取所有页面对象
var myPages = myDoc.pages;
// 遍历所有页面
for (var i = 0; i < myPages.length; i++) {
// 获取页面上的所有文本框
var myTextFrames = myPages[i].textFrames;
// 遍历所有文本框
for (var j = 0; j < myTextFrames.length; j++) {
// 获取文本框中的所有超链接
var myTextHLinks = myTextFrames[j].hyperlinks;
// 遍历所有超链接
for (var k = 0; k < myTextHLinks.length; k++) {
// 获取超链接源地址
var mySource = myTextHLinks[k].source.sourceText;
// 获取超链接目标地址
var myDestination = myTextHLinks[k].destination.destinationText;
// 将超链接目标地址中的旧路径替换为新路径
myDestination = myDestination.replace("/old/path", "/new/path");
// 更新超链接目标地址
myTextHLinks[k].destination.destinationText = myDestination;
// 检查超链接源地址是否需要更新
if (mySource.indexOf("/old/path") >= 0) {
// 将超链接源地址中的旧路径替换为新路径
mySource = mySource.replace("/old/path", "/new/path");
// 更新超链接源地址
myTextHLinks[k].source.sourceText = mySource;
}
}
}
}
此代码通过遍历所有文本框和超链接,将超链接目标地址中旧路径替换为新路径,并更新超链接源地址中的路径,以确保在更改文档路径后保留超链接页面。