如何通过id </script>查找<script>

时间:2010-09-03 06:22:05

标签: javascript html 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>

现在,blabla.js需要找到div占位符。 我正在尝试保存该div占位符,方法是将它的id已经提供给脚本。

是兼容浏览器吗?

感谢

3 个答案:

答案 0 :(得分:6)

在HTML 5中,只需在id标记上放置script属性。

     <script id="myscript">
         // Your script here
     </script>

在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>

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

var myScript = document.getElementById("scriptcontainer").getElementsByTagName("script")[0];

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

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

  

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

答案 1 :(得分:2)

是的,你可以做到。 id是全局属性之一,可以在所有HTML元素上指定(即使是那些未在html规范中定义的元素)。标签script本身已允许

Content attributes:
Global attributes
src
async
defer
type
charset

修改

请注意,此信息取自HTML5规范。我不确定以前的版本,它们可能仍会在教程中使用。

因此,它应该已经与所有主流浏览器(即那些声称支持HTML5的浏览器)兼容。

答案 2 :(得分:1)

例如,在js脚本末尾的

showtime = setInterval("Time()", 1000),最后一行。

通过这个,您可以将脚本放在head标签区域,并通过其id调用脚本,在本例中为id=time
我在网页上的计时器上使用它,并通过在1000中添加一些零,比如添加15个零,当然可以将id时间更改为你喜欢的任何内容,你显然可以愚弄浏览器足够长的时间来逃脱它。 ..

一些人在网页上停留的可能性是100亿到一百万毫秒,当勾选时会出现错误,所以不要将其缩短。

上面的问题就是为什么我来到这个页面,因为我想找到一个更好的方法来欺骗浏览器,但是阅读了所有的答案,我想我会继续愚弄它!

为了好的衡量,我在体内使用了类似的东西: &#34; <center<FONT SIZE="2" COLOR="#003300"><b><div id=time></div></b></FONTcenter>&#34;

一周有604800000毫秒,我想你先关闭你的页面。

http://www.temnolooi.nl/2014a/agenda/agenda.html

注意:请注意,将脚本放在head标签中会加载文件,所以不要过度使用它,否则可能会出现堆栈溢出。正文中的脚本仅在HTML使用时执行,或者用户将其调用。