如何通过id找到<script>

Him*_*ack 0 html javascript html5

我有一个<script>它添加到<head>另一个脚本的地方.这个新脚本应该找到<script>插入它的原始脚本.我可以把<script id="blablabla">新的<script>发现吗?

<div id="placeholder-1"></div>
<script type="text/javascript">
            <//![CDATA[
            (function() {
             var s = document.createElement("script");
             s.type = "text/javascript";
             s.async = true;
             s.src = "blablabla.com/blabla.js";
             (document.getElementsByTagName("head")[0] ||
              document.getElementsByTagName("body")[0]).appendChild(s);
             })();//]]></script>
Run Code Online (Sandbox Code Playgroud)

现在,blabla.js需要找到div占位符.我试图保存该div占位符,通过将它的id已经提供给脚本.

浏览器兼容吗?

谢谢

Fen*_*ton 6

在HTML 5中,只需idscript标记上放置一个属性即可.

     <script id="myscript">
         // Your script here
     </script>
Run Code Online (Sandbox Code Playgroud)

在HTML 4中,id标记实际上并未定义为在脚本标记上有效.

http://www.w3.org/TR/html4/interact/scripts.html#edef-SCRIPT官方W3C规范

官方允许只有src,type,langugage,defer和charset.

一个有效的解决方法是......

<div id="scriptcontainer">
     <script type="text/javascript">
         // Your script here
     </script>
</div>
Run Code Online (Sandbox Code Playgroud)

您现在可以使用"blabla.js"中div元素的id遍历脚本

var myScript = document.getElementById("scriptcontainer").getElementsByTagName("script")[0];
Run Code Online (Sandbox Code Playgroud)

基本上,通过将脚本嵌套在具有id的元素内,我们可以从另一个脚本获取脚本并且还具有有效的标记.

附加说明:在HTML 4规范中,脚本标记上确实不允许使用id:

id所有元素,但BASE,HEAD,HTML,META,SCRIPT,STYLE,TITLE ID #IMPLIED文档范围内唯一ID