1

在一次站点抓取期间,我发现 JavaScript 中的几个抓取函数需要修改,因为代码使用相对路径:

/UserControl/bla

我需要修改它以使用绝对路径:

www.domain-name.com/UserControl/bla

问题是,那些写在被抓取页面包含的单独文件中的函数。到目前为止,我只能使用 PHP 函数流式传输该文件file_get_contents(),更改我需要使用的部分preg_replace,然后将该脚本插入到抓取的 HTML 的头部。我无权修改包含的 JavaScript 文件,因为它位于我无权访问的服务器上。

这是正确的方法吗?

4

2 回答 2

1

在这种情况下,我所做的是声明 JavaScript 全局变量,目标是常量值,然后,我可以从包含的 JS 文件中访问这些变量,例如:

<script>
    Globals = {
        absoluteUrlPrefix: "<?= getAbsoluteUrlPrefix(); ?>"
    };
</script>
<script src="myjsfile.js"></script>

myjsfile.js

...
var absoluteUrl = Globals.absoluteUrlPrefix+"/UserControl/bla";
...
于 2013-03-04T13:42:51.677 回答
0

preg_replace 是一个选项,如果只是为了在你的机器上显示网页,你也可以插入一个基本路径标签: http ://www.w3schools.com/tags/tag_base.asp

于 2013-03-04T13:37:33.703 回答