【问题标题】:Code in the JsFiddle is not working [duplicate]JsFiddle 中的代码不起作用[重复]
【发布时间】:2015-08-06 07:00:02
【问题描述】:

我有一个查询,为此我想准备一个 JSFiddle。但它不适用于小型点击程序。其中只有两行代码。

HTML

<body>
    <button onclick="javascript:launchdialog();">Click Me</button>
</body>

JavaScript

function launchdialog() {
    alert('test');
}

我没有发现仅仅两行代码有什么问题。 请看看这个JSFiddle - http://jsfiddle.net/g47qqzra/

【问题讨论】:

  • 将文件更改为no wrap 后工作。检查Demo

标签: javascript html jsfiddle


【解决方案1】:

您可以在 head 或 body 中将选项设置为 No wrap。

当您使用onload 或onDomReady 时,您的代码将被包装在另一个函数中,该函数在load 或ready 事件中被调用。因此,您的函数无法从该函数外部访问。你会得到错误

ReferenceError: 函数名未定义

使函数no wrap 使其全局,可以从任何地方访问。

Updated fiddle

Jsfiddle Doc

【讨论】:

    【解决方案2】:

    加载:

    • 这意味着包装代码,使其在onLoad窗口事件中运行。这会在整个页面(例如图片)加载完毕后运行。

    onDomReady:

    • 这意味着包装代码,使其在onDomReady窗口事件中运行。这会在 DOM 加载后运行。

    不换行 - 在&lt;head&gt;:

    • 这会将您的 JavaScript 代码放入 &lt;head&gt; 部分

    不换行 - 在&lt;body&gt;:

    • 这会将您的 JavaScript 代码放在 &lt;body&gt; 部分中

    我想知道更多信息可以在jsFiddle's documentation找到。

    你的工作Fiddle

    【讨论】:

      【解决方案3】:

      在左边设置“No wrap - in &lt;head&gt;”

      Here is the updated JSFiddle link

      【讨论】:

      • @Tushar 好像你已经解释过了 :)
      【解决方案4】:

      这是因为你的脚本没有加载,页面加载时没有找到函数launchdialog()。如果将脚本放在 head 标签中,它将在页面加载之前加载,从而解决您的问题。 当您使用“onLoad”选项时,脚本仅在文档加载后才加载,即最后。 只需在左侧选择“无换行”

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-01-09
        • 1970-01-01
        • 1970-01-01
        • 2019-01-07
        • 1970-01-01
        • 2014-01-18
        相关资源
        最近更新 更多