JsFiddle 中的代码不起作用

Code in the JsFiddle is not working

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

HTML

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

JavaScript

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

仅仅两行代码我没有发现任何错误。 请看看这个JSFiddle - http://jsfiddle.net/g47qqzra/

左边设置“No wrap - in <head>

Here is the updated JSFiddle link

您可以在头部或正文中将选项设置为No wrap

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

ReferenceError: functionName is not defined

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

Updated fiddle

Jsfiddle Doc

加载:

  • 这意味着包装代码,因此它将 运行 在 onLoad window 事件中。这 运行 是在整个页面(例如图像)加载完毕后。

onDomReady:

  • 这意味着包装代码,因此它将 运行 在 onDomReady window 事件中。 运行 加载 DOM 后。

不换行 - 在 <head>:

  • 这会将您的 JavaScript 代码放在 <head> 部分

不换行 - 在 <body>:

  • 这会将您的 JavaScript 代码放在 <body> 部分

请注意,可以在 jsFiddle's documentation 中找到更多信息。

你的工作Fiddle

这是因为你的脚本没有加载,加载页面时没有找到函数launchdialog()。如果您将脚本放在 head 标签中,它将在页面加载之前加载,从而解决您的问题。 当您使用 'onLoad' 选项时,脚本仅在文档加载后加载,即最后加载。 就select"No wrap - in "左边集