IEコントロールが組み込まれたwinformsアプリケーションがあります。
このIEコントロールでは、Webアプリケーションを実行します(私はWebアプリケーションを制御しますが、winformsアプリケーションは制御しません)。
Webアプリケーションで、JavaScriptを実行してサブウィンドウを開き、HTMLを入力します。
var features = "menubar=no,location=no,resizable,scrollbars,status=no,width=800,height=600,top=10,left=10";
newTarget = "reportWin" + String ( Math.random () * 1000000000000 ).replace( /\./g ,"" );
reportWindow = window.open('', newTarget, features);
var d = reportWindow.document; // <-- Exception is thrown here
d.open();
d.write('<head>\r\n<title>\r\n...\r\n</title>\r\n</head>');
d.write('<body style="height: 90%;">\r\n<table style="height: 100%; width: 100%;" border="0">\r\n<tr>\r\n<td align="center" valign="middle" style="text-align:center;">\r\n');
d.write(...);
d.close();
このWinFormsアプリ内で(ただし、単独でも別のWinFormsアプリでも)Webアプリケーションを実行すると、指定された行でJavascriptエラーが発生します。
Line 0: Access denied
なぜこれが起こる可能性があるのか、またはどうすればそれを回避できるのかについてのアイデアはありますか?ウィンドウがURLを開いていないことに注意してください。それはただの空のウィンドウです。
同じアプリケーションから、同じドメイン内の指定されたURLでウィンドウを開くことは機能します。