繁体   English   中英

如何将Javascript注入网站,然后确保它与跨浏览器兼容?

[英]How can I inject Javascript into a site, then make sure it's cross-browser compatible?

我正在做一些合同工作,我需要为客户端站点编写Javascript的小片段,然后确保它们适用于所有浏览器。

我本身无法访问网站的服务器,所以我需要能够以其他方式注入网站代码。

我尝试在PHP中编写一个代理脚本来抓取网站的源代码,对所有URL进行绝对化,然后注入Javascript,这适用于某些客户端站点(并且具有在多个浏览器中易于测试的优点)。

但是一些Javascript密集的站点不能使用这种方法 - 他们会做类似于测试window.location以确保它没有被欺骗,或者他们将包含对代理的本地服务器上的文件的引用脚本无法过滤。

作为替代方案,我想我可以使用Greasemonkey来注入Javascript ...这可以让我看到代码在Firefox中的样子,但是我如何测试IE6呢?

当您无法访问Javascript最终所在的站点时,是否有人可以建议进行跨浏览器Javascript开发的方法?

您可以使用bookmarklet通过注入script标记来插入JavaScript。

代码本身看起来像这样:

(function() {
    var d = document,
        s = d.createElement('script'),
        t = d.body || d.getElementsByTagName('head')[0] || d.documentElement;
    s.src = "http://path/to/your/script.js";
    t.appendChild(s);
})();

然后只是书签 - 如果它(搜索“bookmarklet制造商”,你会发现一堆为你做的工作)。 您将结果加入书签,访问要测试的页面,然后单击您的书签进行测试。

例如:

javascript:(function(){%28function%28%29%20%7Bvar%20d%20%3D%20document%2Cs%20%3D%20d.createElement%28%27script%27%29%2Ct%20%3D%20d.body%20%7C%7C%20d.getElementsByTagName%28%27head%27%29%5B0%5D%20%7C%7C%20d.documentElement%3Bs.src%20%3D%20%22http%3A//jsbin.com/ajubo4%22%3Bt.appendChild%28s%29%3B%7D%29%28%29%3B})();

如果您将其复制到书签的URL中,当您在任何主要浏览器上激活书签时,它会从http://jsbin.com (您可以在此处找到)中加载一个简单的脚本,该脚本会发出警报,告诉您有多少p元素在这一页。 (目前,此页面上有23个。)

一个快速而简单的解决方案是使用Privoxy

您可以尝试使用hugoware的jsShell插件使用jQuery。 然后,您可以使用chrome将jQuery应用于已加载的页面。 jQuery应该是跨浏览器兼容的。

http://hugoware.net/projects/jsshell

暂无
暂无

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

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