代码之家  ›  专栏  ›  技术社区  ›  Bullines

附加到外部浏览器窗口

  •  0
  • Bullines  · 技术社区  · 14 年前

    我有一个Windows应用程序,它包含一个浏览器控件,可以从我的网站加载页面。但是,由于Windows应用程序的原因,我无法用通常的方式(Firebug、控制台、警报等)调试Javascript。

    我希望编写一个jQuery插件来登录到外部浏览器窗口,这样我就可以简单地执行以下操作:

    $.log('test');
    

    到目前为止,通过以下操作,我可以创建窗口并显示模板内容,但无法向其写入消息:

    var consoleWindow;
    
    function getConsoleWindow() {
        if (typeof (consoleWindow) === 'undefined') {
            consoleWindow = createConsoleWindow();
        }
    
        return consoleWindow;
    }
    
    function createConsoleWindow() {
        var newConsoleWindow = window.open('consoleLog', '', 'status,height=200,width=300');
        var templateContent = '<html><head><title>Console</title></head>' +
                              '<body><h1>Console</h1><div id="console">' +
                              '<span id="consoleText"></span></div></body></html>';
        newConsoleWindow.document.write(templateContent);
        newConsoleWindow.document.close();
        return newConsoleWindow;
    }
    
    function writeToConsole(message) {
        var console = getConsoleWindow();
        var consoleDoc = console.document.open();
        var consoleMessage = document.createElement('span');
        consoleMessage.innerHTML = message;
        consoleDoc.getElementById('consoleText').appendChild(consoleMessage);
        consoleDoc.close();
    }
    
    jQuery.log = function (message) {
        if (window.console) {
            console.log(message);
        } else {
            writeToConsole(message);
        }
    };
    

    当前,getElementById('consoleText')失败。我所追求的是可能的吗?如果是的话,我会错过什么?

    2 回复  |  直到 14 年前
        1
  •  0
  •   700 Software    14 年前

    尝试添加

    consoleDoc.getElementById('consoleText');
    

    就在之前

    consoleDoc.getElementById('consoleText').appendChild(consoleMessage);
    

        2
  •  0
  •   Bullines    14 年前

    如果我不关闭()文档,它看起来像我希望的那样工作。