2

これは迷惑です。F5を押すとフレームがリロードするようにしようとしています。フォーカスがメインページ(iframeではない)にある場合に機能するようにしています。ただし、同様のソリューションを実装しようとしたり、iframeと通信しようとすると、「安全でないJavaScriptによるフレームへのアクセスの試み」が発生します。具体的には、正確なエラーは次のとおりです。

安全でないJavaScriptは、URLhttp://www.spow.tk/projects/testのフレームからURLhttp://spow.tk/projects/Explorer/02/のフレームにアクセスしようます。ドメイン、プロトコル、およびポートは一致する必要があります。

これは本当に苦痛なので助けてください。ありがとう

4

2 に答える 2

2

これらの2つのサイトは異なるドメインにあります。Javascriptのセキュリティ制限により、ドメイン間でスクリプトを作成することはできません。詳細については、ウィキペディアまたはMozillaをチェックしてください(リンク切れを防ぐためにMozillaを引用):

同一生成元ポリシーは、あるオリジンからロードされたドキュメントまたはスクリプトが別のオリジンからドキュメントのプロパティを取得または設定することを防ぎます。このポリシーは、NetscapeNavigator2.0にまでさかのぼります。

プロトコル、ポート(1つが指定されている場合)、およびホストが両方のページで同じである場合、Mozillaは2つのページが同じオリジンであると見なします。次の表は、 URLhttp : //store.company.com/dir/page.htmlに対するオリジンの比較の例を示しています。

URL                                                 Outcome   Reason
http://store.company.com/dir2/other.html            Success  
http://store.company.com/dir/inner/another.html Success  
https://store.company.com/secure.html           Failure   Different protocol
http://store.company.com:81/dir/etc.html            Failure   Different port
http://news.company.com/dir/other.html          Failure   Different host

同一生成元ルールには1つの例外があります。スクリプトは、document.domainの値を現在のドメインのサフィックスに設定できます。その場合、短いドメインが後続のオリジンチェックに使用されます。たとえば、http: //store.company.com/dir/other.htmlにあるドキュメントのスクリプトが次のステートメントを実行するとします。

document.domain = "company.com"; そのステートメントが実行された後、ページはhttp://company.com/dir/page.htmlでオリジンチェックに合格します。ただし、同じ理由で、company.comはdocument.domainをothercompany.comに設定できませんでした。

ポート番号はブラウザによって個別に保持されます。document.domain = document.domainを含むセッターへの呼び出しは、ポート番号をnullで上書きします。したがって、最初にdocument.domain = "company.com"を設定するだけでは、company.com:8080をcompany.comと通信させることはできません。ポート番号が両方ともnullになるように、両方に設定する必要があります。

于 2012-12-05T00:16:47.110 に答える
0

spow.tkwww.spow.tkは異なるドメインと見なされます。

ただし、実行できることの1つは、この問題が再発しないように、サイトでどちらか一方を使用するように強制することです。たとえば、Apacheを使用している場合は、を変更して、.htaccessすべてのリクエストをからにリダイレクトspow.tkすることができますwww.spow.tk (またはwww.spow.tkspow.tkそれが必要な場合はに)。ユーザーまたはコードが1つのドメインを参照している場合でも、リクエストは指定したドメインにリダイレクトされます。

于 2012-12-05T00:20:21.460 に答える