私はiframeとjavascriptsのdocument.domainプロパティを使用している同じorigin-policyを実装しています。ここでDocument.domainブロックされたjavascriptコード
はIFRAMEです:
<iframe name="ss_iframe" id="ss_iframe" style="display:none" src="http://www.onedomain.com/sample/a"></iframe>
と、このIFRAMEのコードは次のとおりです。
<html>
<head>
<script type="text/javascript" src="pathto/js/jquery/jquery-1.4.2.js"></script>
<script type="text/javascript">
document.domain = 'example.com';
(function ($) {
$.shbar = {
init : function()
{
parent.$.shbar.init($.shbar);
},
ajax : function(options){
$.ajax(options);
}
};
})(jQuery);
$(document).ready(function() {
$.shbar.init();
});
</script>
</head>
<body></body>
</html>
私はこれはiframeをロードしている1つのJavaScriptファイルを持っています。今私は、ウェブサイトで使用していますJSが同一生成元ポリシーについては、以下のコードを持っている。この中
document.domain = 'example.com';
をファイルにJS、私は正常に動作しているHTML5のlocalStorageのを実装しています。しかし、私は次のコードを使用していたとき:
window.addEventListener('storage', function(storageEvent){
var curId = window.localStorage.getItem('curId');
if(curId != '' && storageEvent.key == 'samplestorage'){
$('#msgCount_'+curId).remove();
}
}, false);
このコードはうまくMozillaで実行されますが、クロムで、これは動作しませんが。しかし、jsファイルからdocument.domainという行を削除しても、chromeでうまく動作します。
document.domainがあり、document.domainにコメントした後に正常に動作していれば、ウィンドウ上のフォーカスイベントが機能しなくても、
なぜdocument.domainがそのコードをブロックしているのかわかりません。実際にはdocument.domainなのか他のものなのかはわかりません。
ブラウザコンソールでエラー/警告が表示されますか? –
いいえコンソールにエラーはありません。 –
'onedomain.com'の' Access-Control-Allow-Origin'ヘッダーをインクルードするために使用していますが、後でそのドメインをiframeがどこのコンテンツから取得するのかを再割り当てしています。 –