2016-06-15 6 views
2

私は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なのか他のものなのかはわかりません。

+0

ブラウザコンソールでエラー/警告が表示されますか? –

+0

いいえコンソールにエラーはありません。 –

+0

'onedomain.com'の' Access-Control-Allow-Origin'ヘッダーをインクルードするために使用していますが、後でそのドメインをiframeがどこのコンテンツから取得するのかを再割り当てしています。 –

答えて

1

あなたの応答と時間については、Thanx @ zer00neとtechie_28です。

問題を解決するための回避策が見つかりました。誰かが同じ問題に遭遇した場合の投稿:

var storageEvent= $.Event("storage"); 

$(document).ready(function() 
{ 
    $(window).bind('storage', onStorageEvent); 
}); 

function onStorageEvent(storageEvent) { 
    //your code which should run in other tabs 
}; 

window.onfocus = function(event){ 
    event.stopPropagation(); 
    $(window).trigger(storageEvent); 
}; 
関連する問題