Javascript //firefox中脚本标记上的@sourceurl

Javascript //firefox中脚本标记上的@sourceurl,javascript,node.js,eval,Javascript,Node.js,Eval,在Firefox19和firebug 1.X中,我在尝试/@sourceurl时遇到了一个奇怪的bug 基本上,我通过dom操作动态添加脚本标记,如下面的示例所示。这是行不通的 也许这是ff的一个限制,但我觉得奇怪的是,它在chrome中工作,而不是在ff中工作。 你能确认这个错误吗?你有没有绕过这个错误的方法 注:我不想使用globaleval(),因为它在ie中使用document.write时会崩溃 var计数=0; 函数addNewScriptToHead() { var-newScr

在Firefox19和firebug 1.X中,我在尝试
/@sourceurl
时遇到了一个奇怪的bug

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

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

注:我不想使用global
eval()
,因为它在ie中使用
document.write时会崩溃


var计数=0;
函数addNewScriptToHead()
{
var-newScriptElem;
var-newScriptText;
newScriptElem=document.createElement('script');
setAttribute('type','text/javascript');
newScriptElem.setAttribute('id',''+count);
newScriptElem.text='console.log(“耶!”);//@sourceURL=root/test'+count++'.js';
document.body.appendChild(newScriptElem);
};
添加脚本


实验让我相信:

  • 从版本20.0开始,FF仍然不支持在其内置的web控制台中直接使用
    /@sourceURL

  • /@sourceURL
    确实可以与FF中的Firebug插件一起工作,但并不完全如预期/希望的那样

    A.它仅适用于
    eval
    。这对我来说根本不起作用 像原始问题中那样编写节点脚本

    B.错误将有行号和URL,您可以单击
    查看代码行时出错。但是,
    console.log
    没有
    似乎受到影响,并且没有显示行号或URL

  • 不建议在FF的web控制台内测试此功能。至少在某些时候,我得到的结果与直接用HTML进行测试不同


  • 你不需要逃过双斜杠吗?为什么在您的原始脚本中它不被视为注释?因为它当然是在一个字符串中:)
    <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>