Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用onclick通过id调用脚本?_Javascript_Html_Onclick - Fatal编程技术网

Javascript 如何使用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

可能是显而易见的,但我试着搜索,却找不出答案。我正在使用一个第三方工具,它有一个脚本。脚本有一个id,但脚本中的函数没有名称。我有一个javascript onclick函数,我只想通过onclick函数的id调用脚本

剧本是

<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())对不起-这就是我尝试的“
  • ”出于某种原因,在我的JSFIDLE测试中,JSQuery修改了$(“#feed”)以拥有一个空间…$(“#feed”)这当然不起作用。我转而依赖纯javascript。概念证明:Hmmm…问题是上面代码所在的.js文件与“提要”所在的html主页面位于不同的文件(和文件夹)中。根文件夹中的main.html页调用该文件。您的第一个假设是正确的(在上面的问题中做了更改)。但是,使用eval(…).html()不起作用:(应该是eval($(“#feed”).html())对不起-这就是我尝试的“
  • ”出于某种原因,在我的JSFIDLE测试中,JSQuery修改了$(“#feed”)以拥有一个空间…$(“#feed”)这当然行不通。我转而依赖纯javascript。概念证明:Hmmm…问题是上面代码所在的.js文件与“feed”所在的html主页面位于不同的文件(和文件夹)中。根文件夹中的main.html页面调用该文件。+1.我喜欢
    new Function()
    选项。(假设第三方脚本不能以任何方式更改。)@nnnnnn:
    新函数
    是一个隐式的
    评估
    ,但这确实是这里唯一的选项。但是由于脚本位于
    (函数(){…}())
    ,因此您无法更改它的内容(当然不是在JavaScript中,我相信您可以使用一些工具)是的,我的意思是如果OP不能部署不同版本的脚本,这将是一个比试图在浏览器中操作它更好的选择。我意识到
    新函数
    是一种
    eval
    ,但对我来说,似乎最好只执行一次,然后创建一个实际的函数,而不是每次单击都执行
    eval
    。+1。我喜欢
    new Function()
    选项(假设第三方脚本无法以任何方式更改)。@nnnnnn:
    new Function
    是一个隐式的
    eval
    ,但这实际上是这里唯一的选项。但是由于脚本位于
    (Function(){…}())
    中,因此无法更改它的内容(反正不是用JavaScript,我相信你可以用一些工具)是的,我的意思是如果OP不能部署不同版本的脚本,这将是一个比试图在浏览器中操作脚本更好的选择。我意识到
    新函数
    是一种
    eval
    ,但对我来说,似乎最好只执行一次,然后创建一个实际的函数,而不是每次单击都执行
    eval