我发现这篇关于“注入方式”的好文章,但作者从未完成它: http://hightechstartups.blogspot.ch/2012/05/different-way-of-developing-browser.html
我想要一个裸骨交叉浏览器扩展,没有任何第三方扩展或框架(尽可能轻,不依赖于第三方),这将从远程服务器加载Jquery和JS并且能够在页面完全加载之前或之后加载它。
我已经阅读了很多关于这个主题的主题,但是由于IE10,Chrome 26和FF20出现了新的交叉链接限制,我想知道是否有人有关于以下要求的资源,源代码或教程:
我需要:
跨浏览器扩展支持(IE 8+或9+更糟糕的情况,Chrome 26岁以上,FF20 +,Safari)
能够注入托管在另一台服务器上的单个JS。插入一个脚本标记,该标记引用HTML头部的javascript文件 页面然后执行
不依赖第三方扩展(greasmonkey)或框架(Kango,Crossrider)
能够在页面完全加载之前或之后加载
此方法允许我根据用户的位置自定义浏览器扩展,并且还避免在每次刷新页面时更新JS时进行更新。 我知道缺点,但我想实现这个目标。
我知道像Kango或crossrider这样的跨浏览器框架,但两者都不符合我的需要。
我能找到的最接近的例子是How can I run a <script> tag that I just inserted dynamically from a BHO 但它只涵盖了IE,因为我获得的Csharp经验非常少,我希望看到一个完整的例子来正确理解它并从示例中学习。
我愿意举几个例子,即使它不是跨浏览器(IE对我来说是最糟糕的部分)。 非常感谢您的支持!
UPDATE1:
关于Kango和Crossrider,Kango是2000美元,如果你想使用IE和Crossrider,你需要分发它们并通过它们货币化。
我已经设法为IE和Chrome编写代码,但我正在寻找一种“优雅”的方式,并认为考虑到本网站上人们的知识水平,这是最好的地方。
对于我目前使用NSIS的安装程序,我也会测试Wix。
最后我想对我来说唯一的方法就是学习C ++和.net以使其与IE一起工作,但如果有人能提供更多源代码,那么测试速度和兼容性会很好,并在这里讨论什么是最好的溶液
答案 0 :(得分:0)
为什么Kango或Crossrider不能满足您的需求?这两个框架都允许您操作页面的DOM(这是您想要的):
如果您想编写自己的解决方案,请查看相关文档:
Internet Explorer本身不支持扩展。我花了大约80个小时来创建一个稳定可靠的IE扩展,它支持跨站点AJAX,一种(首选)存储方法,并在任何基于URL的帧中尽早注入脚本。我在Windows XP和Windows 7上使用Visual Express 2010开发并测试了扩展,用于IE 8-10(扩展可能适用于IE6 / 7,但我决定不支持这些古老且很少使用的浏览器)。
首先,我在C#基于LiveReloadIEExtension编写了一个扩展(一个示例IE扩展,后者又基于this Stack Overflow answer - 另见this blog post)。它功能齐全,但它需要.NET 4,缺乏框架支持,而且速度相对较慢。
所以,我决定在C ++中从头开始编写IE扩展。 http://www.wischik.com/lu/programmer/bho.html提供了一个很好的起点:C ++ BHO的示例代码,它根据键/鼠标事件更改文档的背景。我还通过looking at other code samples on CodeProject,MSDN论坛上的主题,Stack Overflow上的问题和答案,许多其他博客以及MSDN文档学到了很多东西:
iHTMLDocument
,iHTMLDocument2
,...接口。创建IE扩展后,您当然希望部署它。我使用Wix toolset创建了一个MSI。