Javascript 如何使用onclick通过id调用脚本?
可能是显而易见的,但我试着搜索,却找不出答案。我正在使用一个第三方工具,它有一个脚本。脚本有一个id,但脚本中的函数没有名称。我有一个javascript onclick函数,我只想通过onclick函数的id调用脚本 剧本是Javascript 如何使用onclick通过id调用脚本?,javascript,html,onclick,Javascript,Html,Onclick,可能是显而易见的,但我试着搜索,却找不出答案。我正在使用一个第三方工具,它有一个脚本。脚本有一个id,但脚本中的函数没有名称。我有一个javascript onclick函数,我只想通过onclick函数的id调用脚本 剧本是 <script id="feed" type="text/javascript">(function(){...}())</script> (函数(){…}()) 我需要从中调用此脚本 $('#searchBox').html("<li
<script id="feed" type="text/javascript">(function(){...}())</script>
(函数(){…}())
我需要从中调用此脚本
$('#searchBox').html("<li onClick=\"$(\"#feed\");\">Click to contact us</li>");
$('searchBox').html('li onClick=\'”$(\“\feed\”)\“>”)单击与我们联系;
我试图像上面那样调用“提要”脚本,但没有成功。如果有关系,“提要”脚本位于页面正文中,而#searchBox是该页面搜索字段中的自动建议框。非常感谢您的帮助!谢谢 我想试试这个:
$("#searchbox").html("<li onClick=\"eval($(\"#feed\").html())\">Click to contact us</li>")
我想试试这个:
$("#searchbox").html("<li onClick=\"eval($(\"#feed\").html())\">Click to contact us</li>")
您可以尝试将未命名函数转换为命名函数。通过向头部添加新的脚本标记
$('<script></scr' + 'ipt>', {
html: 'function feedback(){' + $('#feed').html() + ' }',
type: 'text/javascript'
}).appendTo('head');
然后在新DOM元素的click处理程序中使用该函数
$('#searchBox').html($('<li></li>',{
text: 'Click to contact us'
}).click(feedback));
$(“#搜索框”).html($(“”{
文本:“单击以联系我们”
})。点击(反馈);
(我讨厌使用内联JavaScript。)您可以尝试将未命名函数转换为命名函数。通过向头部添加新的脚本标记
$('<script></scr' + 'ipt>', {
html: 'function feedback(){' + $('#feed').html() + ' }',
type: 'text/javascript'
}).appendTo('head');
然后在新DOM元素的click处理程序中使用该函数
$('#searchBox').html($('<li></li>',{
text: 'Click to contact us'
}).click(feedback));
$(“#搜索框”).html($(“”{
文本:“单击以联系我们”
})。点击(反馈);
(我讨厌使用内联JavaScript。)第三方脚本是什么?该脚本是一个反馈表单。我使用的是标准javascript。@tterbeg:
$(“#搜索框”).html(
不是“标准javascript”。该函数返回什么值?您可以调用匿名函数返回的方法吗?或者该匿名函数可以初始化您应该使用的全局对象。@Ramesh:该函数不能返回任何内容,但您是对的,它可以设置一些全局对象。第三方脚本是什么?该脚本是f反馈表单。我使用的是标准javascript。@tterbeg:$(“#搜索框”).html(
不是“标准javascript”。该函数返回什么值?您可以调用匿名函数返回的方法吗?或者该匿名函数可以初始化您应该使用的全局对象。@Ramesh:该函数不能返回任何内容,但您是对的,它可以设置一些全局对象。您的第一个假设是正确的(在上面的问题中做了更改)。但是,使用eval(…).html()不起作用:(应该是eval($(“#feed”).html())对不起-这就是我尝试的“new Function()
选项。(假设第三方脚本不能以任何方式更改。)@nnnnnn:新函数
是一个隐式的评估
,但这确实是这里唯一的选项。但是由于脚本位于(函数(){…}())
,因此您无法更改它的内容(当然不是在JavaScript中,我相信您可以使用一些工具)是的,我的意思是如果OP不能部署不同版本的脚本,这将是一个比试图在浏览器中操作它更好的选择。我意识到新函数
是一种eval
,但对我来说,似乎最好只执行一次,然后创建一个实际的函数,而不是每次单击都执行eval
。+1。我喜欢new Function()
选项(假设第三方脚本无法以任何方式更改)。@nnnnnn:new Function
是一个隐式的eval
,但这实际上是这里唯一的选项。但是由于脚本位于(Function(){…}())
中,因此无法更改它的内容(反正不是用JavaScript,我相信你可以用一些工具)是的,我的意思是如果OP不能部署不同版本的脚本,这将是一个比试图在浏览器中操作脚本更好的选择。我意识到新函数
是一种eval
,但对我来说,似乎最好只执行一次,然后创建一个实际的函数,而不是每次单击都执行eval
。