我打算用浏览器编写一个javascript库:
在所有浏览器中(包括Safari,Firefox,Chrome,IE,...在桌面和移动环境中),包含一些标准的javascript对象:Window,Navigator,Screen,History,Location,Document,Events,...具有许多属性(或属性)和浏览器之间不同的方法。我的工作是:
创建1个javascript文件,在特定浏览器中运行,从Safari开始,命名为此脚本:“libgen.js”。此脚本使用所有属性(或属性)和方法收集浏览器中的所有javascript对象(排除HTML标记,甚至HTML5标记),然后生成可在phantomjs环境中运行的javascript,命名为新脚本:“libsim.js”。
在“libsim.js”中,它将模拟以前收集的所有javascript对象的所有属性(或属性)和方法,然后在phantomjs中运行“libsim.js”时,它将加载一个特定的页面(输入参数) ,调用此页面为“测试页面”,等待特定超时(输入参数),然后停止脚本
Ex:在Safari中,存在一个对象名称:“Obj”,其属性和方法如下: 属性: P1 P2 方法: M1() M2()
“libgen.js”将在Safari中运行(将“libgen.js”放到html页面,然后通过Safari打开此页面)然后收集对象“Obj”,然后生成新脚本“libsim.js”(输出控制台或textarea,然后通过文件保存到文件“libsim.js”) 运行时:phantomjs libsim.js< 120> 如果“testpage.html”调用Obj.M1(),“libsim.js”将捕获该信息,然后注销到文件包含以下信息: 财产或方法的名称 时间戳 然后它返回原始值 有关详细示例,您可以查看:https://github.com/ariya/phantomjs/blob/master/examples/detectsniff.js 在原始示例中,它注销到控制台,在此作业中,它将注销到名为“trace.txt”的文件
我想监控网站在不同浏览器中与内部javascript的互动方式
我的问题是:你认为这项工作是否可行,你有其他任何建议我的解决方案吗,非常感谢你
答案 0 :(得分:0)
[生成的脚本]" libsim.js" [...]将模拟在
之前收集的所有javascript对象的所有方法您认为这项工作是否可行?
不,绝对不是。您尝试模拟的那些方法是 internal :
你不能"返回原始值"。