繁体   English   中英

在FireFox中执行注入的JavaScript

[英]Execute injected javascript in FireFox

我在网站上注入了一些代码(换句话说, http:// localhost / FibReactHello /#的返回值):

<div id="reactAppEntryPoint">
  <script src="http://localhost/FibReactHello/scripts/bundle.js"></script>
</div>

正如我在Chrome和IE11中所期望的那样,此JS已运行并转换为我的react应用程序。 在Firefox中,不执行JS。 它只是像木头上的颠簸一样坐在那里。 JS应该导致生成了一些HTML,从而为我提供了任意网站内容。

这是jQuery:

<div id="appEntrypt">
            <button onclick="alertMe(event);">Inject React into Boost</button>
        </div>

        <script>
            function alertMe(e) {//crappy named function
                //e.preventDefault();
                console.log('js works');
                var url = "http://localhost/FibReactHello/#";
                resetState();
                $.ajax({
                    url: url, success: function (result) {
                        $("#appEntrypt").html(result);
                        write(result);
                    },
                    async: true
                });
                /*
                $.get(url, function (data) {
                    $("#appEntrypt").html(data);
                    write(data);
                });*/
                return null;
            }

            function write(data) {
                console.log(data);
            };

            function resetState() {
                document.getElementById('appEntrypt').innerHTML = "";
            };
        </script>

我将Ajax调用更改为dataType“脚本”,而不是“ html”。 也直接指向我的bundle.js文件。 该脚本在Chrome和Firefox中执行。

        $.ajax({
                url: devUrl,
                success: function (result) {
                    console.log("successfully got script")
                },
                error: function (xhr, status, errorThrown) {
                    var output = "Error: " + errorThrown + ' status: ' + status + ' statusText: ' + xhr.statusText
                    console.log("failed to get script: " + output);
                },
                contentType: 'application/javascript',//IE
                dataType: 'script',
                cache: false,//required for IE
                crossDomain: true,//required for IE
            });

在IE中,这解决了获取脚本的问题。 但是在我的情况下,我的bundle.js需要一个polyfill来学习IE如何运行jabbascrept:

使用babel后在IE中未定义“符号”

暂无
暂无

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

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