将CodePen JavaScript放入<;头>;而不是</车身>;

将CodePen JavaScript放入<;头>;而不是</车身>;,javascript,Javascript,在使用CodePen时,JavaScript窗格中的JavaScript代码似乎在之前执行。在我的例子中,我在HTML中嵌入了一些标记,其中我引用了JavaScript窗格中定义的函数。由于JS窗格直到之前才进行计算,因此我无法在元素中引用这些JS函数 有没有办法让CodePen有效地“将JavaScript窗格的内容放在中,而不是放在之前”?我最初希望能够指定JS窗格的内容包含在哪里:在元素中或在关闭之前。默认情况下,CodePen会在关闭之前插入JS窗格内容,目前您对此无能为力(2015年7

在使用CodePen时,JavaScript窗格中的JavaScript代码似乎在
之前执行。在我的例子中,我在HTML中嵌入了一些
标记,其中我引用了JavaScript窗格中定义的函数。由于JS窗格直到
之前才进行计算,因此我无法在
元素中引用这些JS函数


有没有办法让CodePen有效地“将JavaScript窗格的内容放在
中,而不是放在
之前”?

我最初希望能够指定JS窗格的内容包含在哪里:在
元素中或在关闭
之前。默认情况下,CodePen会在
关闭之前插入JS窗格内容,目前您对此无能为力(2015年7月)

不过,你可以用一些黑客手段来绕过这个问题。假设您的笔位于: (这是我编造的)。您的JS窗格有自己的URL:

在笔的“设置”中的“Stuff for
”部分,添加一个指向JS窗格的标记:

<script src="//codepen.io/lanshen/pen/j7GB5q.js"></script>
这里有一个小HTML窗格来测试它:

<p>ABC</p>

<script>
  alert("I am in the HTML script tag.");
  headLoad.doSomething("123"); // should alert

  // The following will NOT execute because the "else" clause of the
  // "if(!headLoad)" will not be executed until just prior to the </body>.
  // the global doSomething() function is currently undefined.
  doSomething("456");   // will NOT work, nor should it.
</script>

<p>XYZ</p>
ABC

警报(“我在HTML脚本标记中。”); 头荷载剂量(“123”);//应该警惕 //由于 //“if(!headLoad)”将不会执行,直到执行之前。 //全局doSomething()函数当前未定义。 doSomething(“456”);//它不会起作用,也不应该起作用。 XYZ


Codepen:/jsIDLE:顺便说一句,默认情况下,HTML可以访问您的函数:也就是说,如果您在全局范围内定义它们,那么当然可以。@Blex-您的示例之所以有效,是因为函数(按钮单击处理程序)在用户单击按钮之前不会被调用,而在页面加载之前不会发生这种情况。JavaScript窗格中的代码加载在页面的末尾,因此很自然,您的示例可以正常工作。我想做的是:为什么要在HTML中随机插入脚本标记(不是说不应该,只是问为什么)?为什么不只使用一块脚本(JS框架中的那块)?看起来只有在弹出窗口的框中输入你想要的东西才能完成。。。使它更容易,所以它可能适合你在这方面的需要。@Blex-这一切都只是为了测试,保持思维简单(对我来说)。我无意最终在HTML中添加标签。JSFiddle很不错,但是你不能像使用CodePen一样隐藏你没有使用的窗格。
<p>ABC</p>

<script>
  alert("I am in the HTML script tag.");
  headLoad.doSomething("123"); // should alert

  // The following will NOT execute because the "else" clause of the
  // "if(!headLoad)" will not be executed until just prior to the </body>.
  // the global doSomething() function is currently undefined.
  doSomething("456");   // will NOT work, nor should it.
</script>

<p>XYZ</p>