【表示】 iframe内のページでSPREADを使用すると、「アクセスが拒否されました」というスクリプトエラーが発生する場合がある
対象製品
SPREAD for ASP.NET 7.0J
状況
修正済み
詳細
iframe内のページでSPREADを使用し、iframe内のページと親ページが異なるFQDN(完全修飾ドメイン名)で構成される場合、「アクセスが拒否されました」というスクリプトエラーが発生します。
本現象は、下記のようにホスト名が異なるケースでも発生します。
http://www1.domainA/
http://www2.domainA/
【再現手順】
1.新規Webフォーム1を用意します
2.Webフォーム1に下記のサンプルコードを貼り付け、Webページを起動します
--- スクリプトエラー「アクセスが拒否されました」が発生します
(iframe内のページが弊社ドメインとなるため、localhostや他ドメインでの実行でエラーが発生します)
【再現コード】
---------------------------------
クライアント側スクリプト
---------------------------------
window.onload = init;
function init() {
var iframe = document.getElementById("Iframe1");
iframe.contentWindow.location.href = "http://tools.grapecity.com/Demo/Spread/aspnet7basic/paging/virtualscrollpagingprevrow.aspx";
}
---------------------------------
WebForm1 .aspxファイル
---------------------------------
<body>
<iframe id="Iframe1" height="600" width="1000" frameborder="yes" scrolling="auto"></iframe>
</body>
本現象は、下記のようにホスト名が異なるケースでも発生します。
http://www1.domainA/
http://www2.domainA/
【再現手順】
1.新規Webフォーム1を用意します
2.Webフォーム1に下記のサンプルコードを貼り付け、Webページを起動します
--- スクリプトエラー「アクセスが拒否されました」が発生します
(iframe内のページが弊社ドメインとなるため、localhostや他ドメインでの実行でエラーが発生します)
【再現コード】
---------------------------------
クライアント側スクリプト
---------------------------------
window.onload = init;
function init() {
var iframe = document.getElementById("Iframe1");
iframe.contentWindow.location.href = "http://tools.grapecity.com/Demo/Spread/aspnet7basic/paging/virtualscrollpagingprevrow.aspx";
}
---------------------------------
WebForm1 .aspxファイル
---------------------------------
<body>
<iframe id="Iframe1" height="600" width="1000" frameborder="yes" scrolling="auto"></iframe>
</body>
回避方法
Service Pack 3(v7.0.4017.2010)で修正済み。
なお、IISに配置したものをブラウザから直接URLを指定しアプリケーションを実行した場合や、Visual Studio上からデバッグなしで実行(Ctrl+F5)した際の動作は問題ありませんが、Visual Studio上からデバッグ実行(F5)する際にはHotFix適用後もスクリプトエラーが発生する場合があります。
製品では本不具合の修正方法として、発生する例外を内部的に捕捉することにより以降の処理を継続可能にしていますが、例外の発生によりVisual Studio側で処理を停止してしまいます。Visual Studioのデバッグ動作に起因する現象となるため、製品の制限事項となります。
Visual Studioのデバッグ実行時も処理を停止しないためには、Visual Studioの[デバッグ]メニュー→[例外]で表示できるダイアログで「JavaScript Runtime Exceptions」-「Access is denied」の「スローされるとき」列のチェックボックスを外します。
なお、IISに配置したものをブラウザから直接URLを指定しアプリケーションを実行した場合や、Visual Studio上からデバッグなしで実行(Ctrl+F5)した際の動作は問題ありませんが、Visual Studio上からデバッグ実行(F5)する際にはHotFix適用後もスクリプトエラーが発生する場合があります。
製品では本不具合の修正方法として、発生する例外を内部的に捕捉することにより以降の処理を継続可能にしていますが、例外の発生によりVisual Studio側で処理を停止してしまいます。Visual Studioのデバッグ動作に起因する現象となるため、製品の制限事項となります。
Visual Studioのデバッグ実行時も処理を停止しないためには、Visual Studioの[デバッグ]メニュー→[例外]で表示できるダイアログで「JavaScript Runtime Exceptions」-「Access is denied」の「スローされるとき」列のチェックボックスを外します。