23

私はExecute JSを使用して、Firefox 内で Javascript コードを作成およびテストしています。新しいタブ/ウィンドウを開いて何かを書きたいのですが、試してみました

var wm = Components.classes["@mozilla.org/appshell/window-mediator;1"].getService(Components.interfaces.nsIWindowMediator);
var win = wm.getMostRecentWindow("navigator:browser");
printWindow = win.open("about:blank");
printWindow = wm.getMostRecentWindow("navigator:browser");
printWindow.gBrowser.selectedBrowser.contentDocument.write('hello');

myWindow=window.open('','','width=200,height=100')
myWindow.document.write("<p>This is 'myWindow'</p>")
myWindow.focus()

ただし、常にこのエラーが発生します

[例外...「操作は安全ではありません。」コード: "18" nsresult: "0x80530012 (SecurityError)"

この例外を通過する方法はありますか?

4

3 に答える 3

24

編集:2018年以降、このソリューションは機能しなくなりました。about:blankこれで、新しいウィンドウを開いてコンテンツを追加することに戻ります。

ウィンドウに「書き込む」のではなく、必要なコンテンツでウィンドウを開くだけです。

var data = "<p>This is 'myWindow'</p>";
myWindow = window.open("data:text/html," + encodeURIComponent(data),
                       "_blank", "width=200,height=100");
myWindow.focus();

参考:データURI

于 2012-08-15T10:20:09.347 に答える
4
var winPrint = window.open('', '', 'left=0,top=0,width=800,height=600,toolbar=0,scrollbars=0,status=0');
winPrint.document.write('<title>Print  Report</title><br /><br /> 
Hellow World');
winPrint.document.close();

2018年現在、window.open(uri)はchromeで機能しません

于 2018-02-27T18:51:43.220 に答える