1

iFrame に移動したばかりのレガシー フレーム Web サイトを使用しています。

次の機能があると仮定します。

<script language = "javascript">
  function myFunction(){
    <!-- no console.log in IE 7 (my required target browser) -->
    alert('sup, yo?'); 
  }
</script>

そして、関数をトリガーする次のハイパーリンク:

<a href="javascript:myFunction();" target="_top">click me</a>

iFrame に移動する前は、これは問題なく機能していました。Web サイトが iframe に移動され、IE (FF や Chrome ではない) でリンクをクリックすると、非常に役立つエラーが表示されます。

Line: 1
Object expected

属性を削除するtarget="_top"と関数が機能するので、問題を解決するのに助けは必要ありませんが、私の質問は次のとおりです。

javascript関数を呼び出してこの動作を呼び出すときに、IEはターゲット属性で何をしていますか? 他のバージョンの IE をインストールしていませんが、これは 8 以降でも現在の動作ですか?

ありがとう。

4

1 に答える 1

1

行動を理解しようとしても意味がありません。よく定義されておらず、最近の開発者が使用していない手法を使用しています。

の代わりに、次のように JS からハンドラーを設定するhref="javascript:myFunction();だけです。onclick="myFunction(); return false"

<a href="pageForUsersWithoutJs.html" id="my-link" >click me</a>
<script type="text/javascript">
// This is old school, but works for all browsers, you should use a library instead
document.getElementById('my-link').onclick = function() {
    // Do your thing
    return false; // so the link isn't followed
};
</script>
于 2012-12-18T17:44:05.803 に答える