1

在 firefox 19 和 firebug 1.XI 尝试时遇到了一个奇怪的 bug //@sourceurl

基本上我通过 dom 操作动态添加脚本标签,如下面的示例所示。这不起作用。

也许这是 ff 的一个限制,但我觉得奇怪的是它在 chrome 中工作而不是在 ff 中。
您能否确认这一点,您是否有任何绕过此错误的方法?

Ps:我不想使用全局eval(),因为它在使用时会崩溃document.write

<html>
    <head>

    <script type="text/javascript">
    var count=0;
    function addNewScriptToHead()
    {
            var newScriptElem;
            var newScriptText;

            newScriptElem = document.createElement('script');
            newScriptElem.setAttribute('type', 'text/javascript');
            newScriptElem.setAttribute('id', '' + count);
            newScriptElem.text= 'console.log("Yay !");//@ sourceURL=root/test'+count++ +'.js';

            document.body.appendChild(newScriptElem);
    };
    </script>
    </head>

    <body>
            <button onclick="addNewScriptToHead()">add script</button><br><br>
    </body>

</html>
4

1 回答 1

2

实验使我相信以下几点:

  1. 从 20.0 版本开始,FF 仍然不//@ sourceURL直接在其内置的 Web 控制台中提供支持。

  2. //@ sourceURL确实可以与 FF 中的 Firebug 插件一起使用,但并不完全符合预期/希望。

    A. 它适用于eval. 对于原始问题中的附加脚本节点,它根本不起作用。

    B. 错误会有一个行号和URL,你可以点击
    错误查看代码行。但是,console.log似乎没有
    受到影响,并且没有显示行号或 URL。

  3. 不建议在 FF 的 Web 控制台中测试此功能。至少在某些时候,我得到的结果与直接在 HTML 中测试不同。

于 2013-05-11T05:59:02.970 回答