gpt4 book ai didi

javascript - PhantomJS 在他开始加载之前更改 JS src

转载 作者:行者123 更新时间:2023-11-30 17:19:05 25 4
gpt4 key购买 nike

我正在尝试更改 Javascript src 以获得用于测试某些 Javascript 的“开发环境”。

(显然我无法构建真实开发环境,我无法在开发环境中镜像此网站)。

所以我在考虑用 PhantomJS 操作 Dom 并用 CasperJS 测试 javascript。我想转换(例如)这个脚本

<script type="..." language="..." src="production_path/source.js"></script>

进入这个

<script type="..." language="..." src="dev_path/source.js"></script>

在脚本开始加载之前。

我正在尝试

casper.start("http://www.example.com/",function(status){


var scripts = document.getElementsByTagName('script');

casper.each(scripts,function(self,my_script){

//here i would rewrite script url

});

});

casper.run();

但它不起作用。恐怕我必须等待什么,但我不明白是什么。

最佳答案

退后一步,是否可以将您的问题重新表述为:我如何让 PhantomJS 在尝试加载“production_path/source.js”时加载“dev_path/source.js”?

如果是,写一个onResourceRequested处理程序,并使用 resourceRequest 对象的 changeUrl 函数。

它会是这样的:

casper.page.onResourceRequested = function(requestData, networkRequest) {
if(requestData.url == 'production_path/source.js'){
console.log("Changing request from production to dev for source.js");
networkRequest.changeUrl('dev_path/source.js');
}
};

当然,在实际情况下,我会使用正则表达式替换(因为我希望有多个 URL 可以替换)。

(未经测试,所以如果它不起作用请告诉我,我会更仔细地研究它。)

关于javascript - PhantomJS 在他开始加载之前更改 JS src,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25510558/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com