如何使用onclick通过id调用脚本?

时间:2012-06-25 02:48:21

标签: javascript html onclick

可能很明显,但我尝试搜索,无法弄明白。我正在使用具有脚本的第三方工具。该脚本具有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是该页面上搜索字段中的自动建议框。将不胜感激任何帮助!谢谢!

2 个答案:

答案 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。)