我有一个脚本可以抓取页面中的所有脚本。我这样做:
scripts = $(this).contents().find('script');
然后我检查这个脚本是否是文本:
if( $(this).text() != '' )
如果是,我还需要检查这个脚本是否有一个名为init的函数,所以我这样做
if (typeof $(this).init == 'function')
到目前为止这个工作正常。我的问题是我需要获取该init函数的内容。
除了init函数之外,我还要添加$(this).text()
,还有一个document.ready和另一个函数。
我只需要init的内容。
答案 0 :(得分:0)
如果您有对该功能的引用,并且它看起来像您那样,那么您只需调用
var myFn = $(this).init.toString()
你将把这个函数作为一个字符串。您可以根据自己的喜好对其进行操作,然后使用以下方法之一评估字符串
new Function(myFn)()
eval(myFn)
(1, eval(myFn))
如果你需要从被调用函数中的调用该函数,你可以试试这个:
arguments.callee.toString()
例如
console.log(arguments.callee.toString())
请注意使用arguments.callee won't work in strict mode
我希望有帮助
答案 1 :(得分:0)
任何功能:
var foo = function() {
console.log('a')
}
可以转换为字符串表示形式,如下所示:
var functionString = foo.toString();
回到javascript:
var functionAgain = eval("(" + functionString + ")");
functionAgain()