繁体   English   中英

注入包含JS的HTML

[英]Injecting HTML that contains JS

对于如何将HTML注入无法编辑的HTML中,我得到了一些很好的提示。

现在的麻烦是,该片段包含了无法呈现到页面的JS。

jQuery看起来像这样:

    $(document).ready(function() {   
            var $body = $(document.body);   
              if ($body.is(".ly_productdetails.ProductDetails.en.en_GB")) {
            $('.info_section').prepend('<div id="test-widget"></div><script type="text/javascript" src="/frontend/latest/build.min.js"  data-test="test-widget" data-instance="xyz" data-apikey="12345678" data-tags="" async="async"></script>');
        }
        });

我试过在引号前加上反斜杠,但这没用。

您还可以如何将其写到页面上以便包含JS?

非常感谢,

亚当

JSfiddle: https ://jsfiddle.net/fs6qgzrj/

这是一项安全功能。 jQuery允许HTML代码中的<script>元素,但不会执行(至少src="..."部分;内联脚本有效)。 这是因为jQuery无法确保脚本不是恶意的或来自安全来源(代码中的错误可能使人们可以在表单元素中输入脚本)。

改用jQuery.getScript(url, successCallack)

另请参阅: jQuery-HTML中的脚本标签由jQuery解析并且不执行

看起来jQuery在解析HTML时不会加载外部脚本。 但是,如果您创建脚本元素,它将:

 $('body').prepend($('<script>', { src: 'http://dev.bridgebase.com/barmar_test/test.js' })); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM