【发布时间】:2011-02-01 11:52:05
【问题描述】:
[1] 好吧,老实说,我什至不知道如何称呼它。所以让我得到一些半伪代码,以展示我正在尝试做的事情。我正在使用 jQuery 从 AJAX 调用中获取页面内声明的现有脚本,在 createDocument() 元素内。
到目前为止一切顺利,脚本确实包含整个脚本块的源代码。现在,在这个“script_content”里面,有自动执行的函数,比如 $(document).ready(function(){...}) ,我“评估”innerHTML的所有东西,它执行这段代码,停止我封装的脚本.比如不存在的变量等等。
使用正则表达式删除脚本的某些部分并不是一个真正的选择......我真正想要的是在函数内部“行走”。喜欢做一个(完全虚构的):
script = eval("function(){" + script_content + "};"); 警报(脚本['local_xw_sig']); // a03ucc34095cw3495有没有办法“反汇编”函数,并能够访问其中的“var”? 喜欢这个功能:
函数你好(){ var message = "你好"; } 警报(你好。消息); // 函数内部的 message = var有可能吗?或者我将不得不使用正则表达式破解我的方式? ;P
[2] 还有,有什么方法可以访问使用“createDocument”创建的文档中的 javascript?
【问题讨论】:
-
你为什么要这样做?它可能有助于提供答案。
-
这是一个greasemonkey脚本,与页面交互,但不加载图像、脚本等。
-
根据 W3,“createDocument”调用的结果是一个 Document 元素,但它声明它是一个“无 cookie”环境,因为它没有“document.location”。我怎么能访问它是 doc.window ?有没有办法做到这一点?如果可以,这将解决我的问题,因为窗口在页面中具有所有全局声明的变量
-
我真的认为你应该为这样的任务使用一个成熟的浏览器扩展。
标签: javascript dom eval reverse-engineering anonymous-function