5

次のスクリプトを使用して、特定のページを初めてロードしたときに (サードパーティの) iFrame に強制します。

<script type="text/javascript">
    if(window.top==window) {
       location.reload()
    } else {
    }
</script>

(明確にするために:この「埋め込み」はサードパーティのシステムによって自動的に行われますが、ページが一度更新された場合にのみ-スタイリングやその他の理由から、最初からそこに置きたいと思っています。)

現在、「親」ドキュメントの現在の URL を検出して特定のアクションをトリガーできるように、このスクリプトを拡張できるかどうか疑問に思っています。サードパーティのサイトの URL が「http://cgi.site.com/hp/ ...」で、iFrame の URLが「 http://co.siteeps.com/hp/ ...」であるとします。 '。sthを実現することは可能ですか?JSでこのように:

<script type="text/javascript">
    if(URL is 'http://cgi.site.com/hp/...') {
       location.reload()
    }
    if(URL is 'http://co.siteeps.com/hp/...') {
       location.do-not.reload() resp. location.do-nothing()
    }
</script>

ティア・ジョシュ

4

2 に答える 2

7
<script type="text/javascript">
    if(/^http:\/\/cgi.site.com\/hp\//.test(window.location)) {
       location.reload()
    }
    if(/^http:\/\/co.siteeps.com\/hp\//.test(window.location)) {
       location.do-not.reload() resp. location.do-nothing()
    }
</script>

もちろん、2 番目の if は冗長なので、次のように簡単に実行できます。

<script type="text/javascript">
    if(/^http:\/\/cgi.site.com\/hp\//.test(window.location)) {
       location.reload()
    }
</script>

ここで行っているのはwindow.location、正規表現を使用して、目的の URL と一致するかどうかをテストすることです。

親の URL を参照したい場合は、 を使用できますparent.location.href

あなたのコメントによると、何か他のことをしたい場合は、次のようなことができます:

<script type="text/javascript">
    if(/^http:\/\/cgi.site.com\/hp\//.test(window.location)) {
       location.reload()
    }
    else if(/^http:\/\/co.siteeps.com\/hp\//.test(window.location)) {
       //do something else
    }
</script>

他のケースで何もしていない場合、それは実質的にNOP(操作なし)であるため、空のブロックになるため、else(または別のif)も必要ありません。

于 2010-04-08T00:16:43.410 に答える
2

window.location.href文字列比較を行うための URL を取得するために使用できます。iframe にいて、親の URL を知る必要がある場合は、それがparent.location.href得られるはずです。

于 2010-04-08T00:20:14.000 に答える