1

我在HTML文件中使用Javascript來展開和摺疊文件的元素。Javascript適用於Chrome,但不適用於IE或Firefox

這是腳本:

function toggleBlock(pstrID){ 
    var myDiv = document.getElementById('d' + pstrID); 
    if (myDiv){ 
    if (myDiv.style.display == 'none'){ 
     showBlock(pstrID); 
    } else{ 
     hideBlock(pstrID); 
    } 
    } 
} 
function showBlock(pstrID){ 
    var myDiv = document.getElementById('d' + pstrID); 
    if (myDiv){ 
    myDiv.style.display = 'block'; 
    var myImage = document.getElementById('i' + pstrID); 
    if (myImage){ 
     myImage.src = 'arrowdown.gif'; 
     myImage.alt = 'Hide'; 
    } 
    if (document.location.href.indexOf('mk:@') == 0) 
     myDiv.innerHTML = myDiv.innerHTML; 
    } 
} 
function hideBlock(pstrID){ 
    var myDiv = document.getElementById('d' + pstrID); 
    if (myDiv){ 
    myDiv.style.display = 'none'; 
    var myImage = document.getElementById('i' + pstrID); 
    if (myImage){ 
     myImage.src = 'arrowright.gif'; 
     myImage.alt = 'Show'; 
    } 
    if (document.location.href.indexOf('mk:@') == 0) 
     myDiv.innerHTML = myDiv.innerHTML; 
    } 
} 

當我調用腳本,我使用以下命令:

<a id="h7217" class="expandingblocktemplate" title="" href="javascript:toggleBlock('7217')"> 
  • 在Chrome中的一切工作正常。

  • 在IE中,點擊鏈接會導致不同的窗口(顯示的地址顯然是javascript:toggleBlock('7217'),數字取決於點擊的鏈接)以及錯誤「Internet Explorer無法顯示網頁」 。

  • 在Firefox中,一個新的標籤出現,錯誤控制檯說:
    錯誤:toggleBlock沒有定義
    源文件:JavaScript的:toggleBlock( '7217')
    線:1

回答

1

只是toggleBlock調用後添加

 return false ; 

0

此外,以Furqan的解決方案:

你不應該在href屬性觸發的JavaScript。這是一種非標準的方法,容易導致錯誤,特別是如果你不知道自己在做什麼。改爲使用onclick,併爲非腳本用戶在href屬性中放置有效的URL,如果您不關心非腳本用戶,請使用href="#"

<a id="h7217" class="expandingblocktemplate" title="" onclick="toggleBlock('7217');" href="noscript.html"> 
0

試試這個:

HTML:

<a href="#" onclick="toggleBlock('7217')"> 

的JavaScript:

function toggleBlock(pstrID) { 
    var block = document.getElementById('d' + pstrID), 
     img = document.getElementById('i' + pstrID); 

    if (block && img) {  
     if (block.style.display === 'none') { 
      block.style.display = 'block'; 
      img.src ='arrowdown.gif'; 
      img.alt = 'Hide'; 
     } else { 
      block.style.display = 'none'; 
      img.src = 'arrowright.gif'; 
      img.alt = 'Show';  
     } 

     if (document.location.href.indexOf('mk:@') === 0) { 
      block.innerHTML = block.innerHTML; 
     } 
    } 

    return false; 
} 
相關問題