2

可能很明显,但我尝试搜索但无法弄清楚。我正在使用具有脚本的第三方工具。该脚本有一个 id,但脚本中的函数没有名称。我有一个 javascript onclick 函数,我想做的就是通过onClick 函数的 id调用脚本。

IE。脚本是

<script id="feed" type="text/javascript">(function(){...}())</script>

我需要调用这个脚本

$('#searchBox').html("<li onClick=\"$(\"#feed\");\">Click to contact us</li>");

我试图像上面那样调用'feed'脚本,但没有运气。如果重要,“提要”脚本位于页面正文中,#searchBox 是该页面搜索字段中的自动建议框。将不胜感激任何帮助!谢谢!

4

2 回答 2

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>")
于 2012-06-25T03:07:59.570 回答
2

您可以尝试将未命名的函数变成命名函数。通过在头部添加一个新的脚本标签。

$('<script></scr' + 'ipt>', {
    html: 'function feedback(){' + $('#feed').html() + ' }',
    type: 'text/javascript'
}).appendTo('head');

或者更好的是,通过使用new Function

var feedback = new Function($('#feed').html());

然后在新 DOM 元素的点击处理程序中使用该函数。

$('#searchBox').html($('<li></li>',{
    text: 'Click to contact us'
}).click(feedback));

(我讨厌使用内联 JavaScript。)

于 2012-06-25T03:49:54.217 回答