附加到外部浏览器窗口
问题描述:
我有一个Windows应用程序,其中包含一个浏览器控件,可从我的网站加载页面。但是,由于Windows应用程序,我无法以通常的方式调试Javascript(Firebug,控制台,警报等)。附加到外部浏览器窗口
我希望写一个jQuery插件记录到外部浏览器窗口,这样我可以简单地这样做:
$.log('test');
到目前为止,用下面的,我能够创造出窗口并显示templateContent,但不能将消息写入它:
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')失败。我是否可能,如果是这样,我错过了什么?
答
如果我不关闭()该文档,它似乎工作正如我所希望的。
答
尝试增加
consoleDoc.getElementById('consoleText');
consoleDoc.getElementById('consoleText').appendChild(consoleMessage);
如果您添加的行是一个失败,则意味着consoleDoc是不正确的,如果下一行是唯一一个前正确的失败然后..ById('consoleText')不匹配