</script> 用引号括住 html 中的脚本标记

Posted

技术标签:

【中文标题】</script> 用引号括住 html 中的脚本标记【英文标题】:</script> in quotes ending script tag in html 【发布时间】:2014-11-18 12:15:04 【问题描述】:

我知道有人问过非常相似的问题,我已经尝试了答案。这是我的代码:

    <script>
    if( /android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ) 
        $('<link rel="stylesheet" type="text/css" href="stylesheet-mobile.css" />').appendTo('head');
        $('<script src="script-mobile.js"></scr' + 'ipt>').appendTo('head');
    
    else 
        $('<link rel="stylesheet" type="text/css" href="stylesheet-main.css" />').appendTo('head');
        $('<script src="script-main.js"></scr' + 'ipt>').appendTo('head');
    
</script>

你可以看到我已经打破了关闭尝试让它工作的方式,看起来它会,但它没有。我也尝试过“转义”斜线,即:,对我也不起作用。这些是我在这里找到的答案... CSS 运行良好,所以它不是 jquery 本身,如果我把那个脚本标签拿出来放在最后一个结束标签下面,它就可以工作,所以它不是名字错误的东西。 .. 有什么想法吗?

【问题讨论】:

你为什么使用+在这里签名$('&lt;script src="script-main.js"&gt;&lt;/scr' + 'ipt&gt;') 你需要在document.ready函数中添加你的代码。检查这个小提琴jsfiddle.net/r43vev8z。您可以使用 f12 来验证代码。 【参考方案1】:

我能做到

var 值 = '... -->'; var valueNoComments = value.substring(4, value.length -3); document.write(值);

【讨论】:

【参考方案2】:

试试

 <script>
    $(document).ready(function() 
        if( /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ) 
            $('<link rel="stylesheet" type="text/css" href="stylesheet-mobile.css" />').appendTo('head');
            $('<script src="script-mobile.js"></scr' + 'ipt>').appendTo('head');
        
        else 
            $('<link rel="stylesheet" type="text/css" href="stylesheet-main.css" />').appendTo('head');
            $('<script src="script-main.js"></scr' + 'ipt>').appendTo('head');
        
    );
    </script>

【讨论】:

【参考方案3】:

您可以在页面加载之前对其 DOM 进行操作。使用就绪处理程序$(function() …)、see the documentation:

<script>
$(function() 
    if( /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ) 
        $('<link rel="stylesheet" type="text/css" href="stylesheet-mobile.css" />').appendTo('head');
        $('<script src="script-mobile.js"></script>').appendTo('head');
    
    else 
        $('<link rel="stylesheet" type="text/css" href="stylesheet-main.css" />').appendTo('head');
        $('<script src="script-main.js"></script>').appendTo('head');
    
);
</script>

如果来晚了,你必须在你的页面中使用document.write&lt;head&gt;

<head>
    <script>
if( /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ) 
    document.write('<link rel="stylesheet" type="text/css" href="stylesheet-mobile.css" />');
    document.write('<script src="script-mobile.js"></script>');
 else 
    document.write('<link rel="stylesheet" type="text/css" href="stylesheet-main.css" />');
    document.write('<script src="script-main.js"></script>');

    </script>
</head>

【讨论】:

好先生,谢谢。奇怪的是,将 document.write 添加到 css 链接的前面搞砸了.. 但它在脚本链接上工作得很好,而且 css 链接已经工作了,所以无论如何都没有必要。我敢肯定,这与 DOM 顺序有关。我会在早上尝试第一个解决方案。 :P 第二个解决方案效果很好,非常感谢!

以上是关于</script> 用引号括住 html 中的脚本标记的主要内容,如果未能解决你的问题,请参考以下文章

shell脚本中反引号与双引号的·区别与联系

用括号括住 JavaScript 语句有啥意义?

htm5l,第一个script代码练习

React / JSX:渲染的 <script> 标记将等号和引号添加到异步属性

JavaScript

XSS训练连载二