次のリンクがあります:
<a id="HeaderImage1Tab" style="display: block;" onclick="HeaderImage1Tab(this);" href="javascript:void(0)">- Header Image 1</a>
このリンクをクリックすると、次のjsコードが呼び出されます。
function HeaderImage1Tab(link) {
if (link.innerText == "+ Header Image 1") {
document.getElementById("HeaderImage1Table").style.display = 'block';
link.innerText = "- Header Image 1";
} else {
document.getElementById("HeaderImage1Table").style.display = 'none';
link.innerText = "+ Header Image 1";
}
}
基本的には、リンクの下のテーブルブロックを表示/非表示にするだけです。Firefoxを除くすべてのブラウザですべて動作します。Firefoxでは、コードを起動してテーブルブロックを表示するには、リンクをダブルクリックする必要があります。そして、奇妙なことに、最初にダブルクリックするだけで、その後は期待どおりに機能します。
更新#1:私はasp.netサイトで作業しています。同じページに上記のように約15のリンクもあります。
解決しました
更新#2:問題を解決するtextContent
代わりに使用する。innerText
Firefoxはをサポートしていないようinner text
です。
アップデート#3: このJSはtextContent
、IE8以前の修正の問題を切り取った:
if (Object.defineProperty && Object.getOwnPropertyDescriptor &&
Object.getOwnPropertyDescriptor(Element.prototype, "textContent") &&
!Object.getOwnPropertyDescriptor(Element.prototype, "textContent").get)
(function() {
var innerText = Object.getOwnPropertyDescriptor(Element.prototype, "innerText");
Object.defineProperty(Element.prototype, "textContent",
{
get : function() {
return innerText.get.call(this)
},
set : function(x) {
return innerText.set.call(this, x)
}
}
);
})();