可能很明显,但我尝试搜索,无法弄明白。我正在使用具有脚本的第三方工具。该脚本具有id,但脚本中的函数没有名称。我有一个javascript onclick函数,我想要做的就是从onClick函数调用脚本的id 。
即。脚本是
<script id="feed" type="text/javascript">(function(){...}())</script>
我需要从
调用此脚本$('#searchBox').html("<li onClick=\"$(\"#feed\");\">Click to contact us</li>");
我尝试按上述方式调用'feed'脚本,但没有运气。如果重要,'feed'脚本位于页面正文中,#searchBox是该页面上搜索字段中的自动建议框。将不胜感激任何帮助!谢谢!
答案 0 :(得分:2)
我会试试这个:
$("#searchbox").html("<li onClick=\"eval($(\"#feed\").html())\">Click to contact us</li>")
假设#feed中的脚本自行执行,看起来像这样:(function(){...})()
但是,如果函数看起来与您发布的(function(...){})
完全一致,那么这应该有效:
$("#searchbox").html("<li onClick=\"eval($(\"#feed\").html())()\">Click to contact us</li>")
答案 1 :(得分:2)
您可以尝试将未命名的函数转换为命名函数。通过向头部添加新的脚本标记。
$('<script></scr' + 'ipt>', {
html: 'function feedback(){' + $('#feed').html() + ' }',
type: 'text/javascript'
}).appendTo('head');
或者更好,使用new Function
:
var feedback = new Function($('#feed').html());
然后在新DOM元素的click处理程序中使用该函数。
$('#searchBox').html($('<li></li>',{
text: 'Click to contact us'
}).click(feedback));
(我讨厌使用内联JavaScript。)