私は古いウェブサイトに問題があります。その上のすべてのJavaScriptコードはgetElemenById関数を使用します。しかし、サイトマークアップのタグはidプロパティを持たず、代わりに名前プロパティのみを持ちます。それはIEでも動作しますが、ブラウザは名前プロパティでも要素を返します。他のすべてのブラウザでは、JSの間違いです。 この機能を他のブラウザでオーバーロードして、他のブラウザと互換性のあるWebサイトにする方法はありますか?JavaScript getElementById関数のオーバーロード
答えて
Javaの関数を「オーバーロード」する方法はありません。つまり、JavaやCのような強く型付けされた言語で行うことです。実際、JavaScriptのすべての関数は、この意味ですでにオーバーロードされています任意の数と種類の引数を持つ関数を呼び出すことができます。
しかし、できることは、既存のバージョンの前に独自のプロキシを挿入し、好きな動作でプロキシを実装することです。たとえば、
ニースのソリューション! +1 –
ありがとうございます。それは私にとって最高です。 –
getElementById
を正常に上書きすることはできません。検索を行うと、それはこのような何かをして交換が容易に十分に聞こえる:
// Replace
document.getElementById("foo");
// With
myGetElementById("foo", document);
// Replace
myElement.getElementById("foo");
// With
myGetElementById("foo", myElement);
その後することができますmyGetElementById
あなたが望むように、古いIEの中で何が起こるかと何をgetElementById
をオーバーライドしていない場合は気にせず。
getElementsByNameを試してください。これは、名前の要素のコレクションを取得するために使用されます
ありがとうございます。私はそれを知っていますが、この古いウェブサイトは多くの仕事に費やされています。私は回避策がありません。 –
- 1. Javascript getElementByID
- 2. 関数のオーバーロード
- 3. $()関数のオーバーロード
- 4. ==関数のオーバーロード
- 5. Javascript複数の実際の時間(GetElementById)
- 6. Javascript can not getElementById
- 7. javascript getelementbyid is null
- 8. forループのJavascript getElementById
- 9. C++オーバーロード関数
- 10. 関数のオーバーロード時のオーバーロード時のエラーcmath関数C++
- 11. バリデーショナルテンプレート関数のオーバーロード
- 12. rvalue関数のオーバーロード
- 13. R - 関数のオーバーロード
- 14. Typescript:関数のオーバーロード
- 15. asp.net javascript getelementbyid in iframe
- 16. 関数オーバーロード機構
- 17. シングルトンクラスのインスタンス関数のオーバーロード
- 18. C++の関数のオーバーロード
- 19. NetLogoの関数のオーバーロード
- 20. CodeIgniterでの関数のオーバーロード
- 21. スーパークラスの関数のオーバーロード
- 22. コントローラのパブリック関数のオーバーロード
- 23. Struts:リクエストスコープからのgetElementByID(JavaScript)
- 24. Javascript getElementByIDとフォームの処理
- 25. JavaScript関数のオーバーロード方法(Slickgridのエディタを変更する)
- 26. objective-c:関数/メソッドのオーバーロード?
- 27. テンプレート関数のオーバーロードは
- 28. 関数のオーバーロードがTypeScript
- 29. Autolispユーザー関数のオーバーロード
- 30. 関数テンプレートのオーバーロード解決
他のブラウザで異なる方法で動作しようとするのではなく、正しく動作するようにコードを修正するほうがよいでしょう。 'getElementsByName'メソッドを使って名前で要素を見つけることができますが、名前がIDのようにユニークであるとは予想されないので配列を返します。 –