【问题标题】:Why isn't my settimeout fuction in HTML code working?为什么我的 HTML 代码中的 settimeout 函数不起作用?
【发布时间】:2016-07-19 17:08:52
【问题描述】:

我想让我的代码显示一个视频,然后使用 setTimeout 在指定时间后默认使用不同的代码。下面是我的代码。视频文件显示,但在指定的 1 秒后,它会消失,而不会默认/显示第二个代码。它最终只是空白。

<div id="video159795815158585" style="width: 300px; height: 250px;">
<script src="http://p.algovid.com/player/tlvplayer.js?p=1597958151&sid=[REPLACE TO SPECIFIC DOMAIN]&cb=58585&w=300&h=250&d=[REPLACE TO SPECIFIC DOMAIN]" type="text/javascript">
</script>
<script type="text/javascript">
setTimeout(function(){ document.getElementById('video159795815158585').innerHTML = "<script type="text\/javascript" src="\/\/display.blutonic-ads.com\/2.0\/9608\/adtag.js" data-tc-slot="26539" data-tc-size="300x250" data-tc-publisher="41b30f06-306c-5b38-9b50-7a5bdd3d9f9a"><\/script> <noscript> <img src="http:\/\/p.algovid.com\/ppx\/error?en=1&em=nojs&p=1597958151&sid=[REPLACE INTO DOMAIN]&cb=58585&domain=[REPLACE TO SPECIFIC DOMAIN]" width="1" height="1"><\/noscript>"; }, 1000);
</script>
<noscript>
    <img src="http://p.algovid.com/ppx/error?en=1&em=nojs&p=1597958151&sid=[REPLACE INTO DOMAIN]&cb=58585&domain=[REPLACE TO SPECIFIC DOMAIN]" width="1" height="1">
</noscript>

这是应该显示的第二个代码

<script type="text/javascript" src="//display.blutonic-ads.com/2.0/9608/adtag.js" data-tc-slot="26539" data-tc-size="300x250" data-tc-publisher="41b30f06-306c-5b38-9b50-7a5bdd3d9f9a"></script>

【问题讨论】:

  • 看看你自己问题中突出显示的语法,你就会发现问题。
  • 你不能用 innerHTML 添加脚本标签并期望它运行。
  • &lt;/script&gt; 将终止脚本。一个技巧是把它写成'&lt;/s' + 'cript&gt;'。但这已经在几个关于 SO 的问题中讨论过了。除了浏览器无论如何都不会运行插入的脚本这一事实外,正如另一位评论者指出的那样 - 您需要使用 DOM 例程插入脚本,例如 createElement('script')
  • :( 嘿伙计们......谢谢你的 cmets,但我不知道任何编码......这段代码来自所有谷歌搜索,所以我不知道如何将每个人的建议应用于我有。有什么办法可以调整我的代码以使其工作 TT _ TT

标签: javascript html settimeout


【解决方案1】:

关于 JavaScript 代码中的引号的明显语法错误。 当引用字符串且字符串为 JavaScript 语句时,您需要通过单引号和双引号或转义字符“\”进行嵌套引号。

以下三个表达式等价且正确。

"<script type='...'>"

'<script type="...">'

"<script type=\"..\">"

请注意使用单引号和双引号。 JavaScript中单引号和双引号的作用是一样的,创建字符串时可以混合使用单引号和双引号,只要字符串的开头和结尾使用相同类型的引号即可。


以上描述只解决了语法错误,并没有解决功能问题。 你面临的函数问题是如何动态加载一个JavaScript脚本文件,下面的代码希望对你有所帮助。

<script type="text/javascript">
    var ohead= document.getElementsByTagName('head')[0];
    var oScript= document.createElement("script");
    oScript.type = "text/javascript";
    oScript.src= "//display.blutonic-ads.com/2.0/9607/adtag.js";
    ...
    setTimeout("oHead.appendChild(oScript)",1000);
</script>

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2020-09-07
  • 2015-09-28
  • 1970-01-01
  • 2021-12-10
  • 2014-01-23
  • 2013-08-06
  • 1970-01-01
相关资源
最近更新 更多