1 つのフレームにアイテムのリストを表示するアプリケーションを開発しました。アイテムをクリックすると、別のフレームで何かが実行されます (画像が読み込まれます)。
これは、Chrome 3 を含むすべてのブラウザーで正常に機能していました。今でもFirefoxでは問題なく動作しますが、Chromeの最近のバージョン(4以降だと思います)では、次のエラーがスローされます。
安全でない JavaScript が URL (...) のフレームから URL (...) のフレームにアクセスしようとしています。ドメイン、プロトコル、およびポートが一致する必要があります。
これは明らかにセキュリティの「機能」ですが、それを回避することは可能ですか?
簡単なテストを次に示します。
index.html:
<html>
<frameset cols="50%,50%">
<frame src="left.html" name="left"/>
<frame src="right.html" name="right"/>
</frameset>
</html>
left.html:
<html>
<body>
<a href="javascript:parent.right.test('hello');">click me</a>
</body>
</html>
right.html:
<html>
<body>
<script>
function test(msg) {
alert(msg);
}
</script>
</body>
</html>
上記は Firefox 3.6 および Chrome 3 では機能しますが、Chrome 5 では上記のエラーがスローされます...
編集:
- @cols 属性をフレームセット要素に追加しました
- 実際、ページが http プロトコルで (および同じドメインから) 提供されている場合にのみ、Chrome で機能しますが、私の問題は、ページがローカルであり、 file:// プロトコルから提供されている場合です。次に、Firefox(すべてのバージョン)とChrome 3で動作しますが、Chrome 5では動作しません(Chrome 4を持っていないため、その特定のバージョンについてはわかりません(特定のChromeバージョンをダウンロードできるかどうかさえわかりません) ?) -- しかし、Chrome 5 では動作しないと確信しています)。