Document.write(<script>)抛出意外的标记"ILLEGAL"

 o筱灵丹 发布于 2023-02-08 15:34

在你提问之前,我已经在Stack Overflow中搜索了很多,并且我谷歌了几千次.我见过的任何其他案例都帮助了我.

我们来看看我的问题:

我正在尝试在我的代码中使用以下脚本:

");

但我正在使用Blogger并且它无法正确检测我的代码(请注意红色脚本结束标记):

请注意红色脚本结束标记

有了这个,我无法保存模板.所以我试图使用这个网站将我的代码转换成HTML实体.当我编码时,将其放入我的模板并保存,我得到:

Uncaught SyntaxError: Unexpected token ILLEGAL 

这是我正在尝试使用的编码字符串:

<script type='text/javaScript'>document.write("<script src='/feeds/posts/default/-/"+hom_cat1+"?max-results=1&orderby=published&alt=json-in-script&callback=showhomeposts1'></script>");</script>

我该怎么做才能解决我的问题?

Dagg Nabbit.. 22

问题是传递给的字符串document.write包含字符,最终会过早地终止document.write调用的脚本元素.

字符不能出现在脚本中的任何位置,因为HTML解析器无法将其与实际标记区分开来.

您可以尝试这样的事情:

document.write("
        
        
    
1 个回答
  • 问题是传递给的字符串document.write包含字符</script>,最终会过早地终止document.write调用的脚本元素.

    字符</script>不能出现在脚本中的任何位置,因为HTML解析器无法将其与实际</script>标记区分开来.

    您可以尝试这样的事情:

    document.write("<script src='...'></scr" + "ipt>");
    

    或者,如评论中所述:

    document.write("<script src='...'><\/script>");
    

    另一种选择是使用DOM API创建script元素并将其插入到文档中.这里的其他答案给出了一些建议,但是实现存在潜在的问题(例如,document.body.appendChild如果你尝试从内部调用它会抛出一个TypeError head).像这样的东西会更强大:

    (function() {
        var s = document.getElementsByTagName('script')[0];
        var script = document.createElement('script');
        script.src = 'http://something.com';
        s.parentNode.insertBefore(script, s);
    }());
    

    另外,type='text/javaScript'是不正确的; 使用text/javascript或省略type属性.

    2023-02-08 15:37 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有