我尝试更改Javascript src 以获得" dev环境"用于测试一些Javascripts。
(显然,我无法建立一个真正的开发环境,我无法在开发环境中反映这个网站)。
所以我正在考虑使用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();
但它不起作用。我害怕我必须等待什么,但我不明白是什么。
答案 0 :(得分:2)
退一步,是否可以将您的问题重新表达为:在尝试加载“production_path / source.js”时如何让PhantomJS加载“dev_path / source.js”?
如果是,请编写onResourceRequested
处理程序,并使用changeUrl
对象的resourceRequest
函数。
会是这样的:
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可以替换)。
(未经测试,如果它不起作用,请告诉我,我会更仔细地研究它。)