繁体   English   中英

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

[英]PhantomJS Change JS src before he starts loading

我试图更改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)。

(未经测试,所以让我知道它是否不起作用,我将对其进行仔细研究。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM