簡體   English   中英

Mootools setHtml在IE中不起作用

[英]Mootools setHtml not working in IE

我正在嘗試將HTML插入一個簡單的div中。 HTML並未將其傳遞給div,但如果我在setHTML調用之前直接對其發出警報,則它是完美的。 該代碼在setHTML調用上失敗。 這是Mootools調用:

$('vmcartmodule').setHTML(response)

響應變量是我從另一個文件收集的HTML。 該錯誤是來自此處的Mootools未知的運行時錯誤:

setHTML: function(){
    this.innerHTML = $A(arguments).join('');
    return this;
}

我的HTML代碼示例:

 <div id="opcoCartUpdateTable">
        <div id="row" class="product_row">
        <div class="product_name" >Color: Chocolate Brown<br/> Size: Medium </div>
        <div align="right" class="product_price" >$19.95</div>
        <div class="update_button" ><form method="post" onsubmit="return opcoHandleCartUpdate(this, 0);" style="display: inline;">

    <input type="hidden" name="option" value="com_virtuemart" />
    <input type="text" title="Update Quantity In Cart" class="inputbox" size="4" maxlength="4" name="quantity" value="1" />

    <input type="hidden" name="page" value="" />
    <input type="hidden" name="func" value="cartUpdate" />
    <input type="hidden" id="product_id" name="product_id" value="17" />
    <input type="hidden" id="prod_id" name="prod_id" value="17" />
    <!--input type="hidden" id="Itemid" name="Itemid" value="54" /-->
    <input type="hidden" id="Itemid" name="Itemid" value="53" />
    <input type="hidden" id="description" name="description" value="Color:Chocolate_Brown; Size:Medium" />
    <input type="image" name="update" title="Update Quantity In Cart" src="modules/mod_virtuemart_onepagecheckout/assets/images/update_quantity_cart.png" alt="Update" align="middle" onclick="return opcoHandleCartUpdate(this.parentNode, 0);" />
  </form></div>
        <div class="product_price2"  align="right" >$19.95</div>
      </div>
    </div>

我下一步要看什么? 任何幫助表示贊賞。 謝謝

您正在使用哪個版本的Mootools? 在最新版本中,不建議使用$ A(),您應該使用Array.from()。

設置元素HTML的正確方法是.set('html',yourHtml),這是一種Element方法。

好的,有兩件事正在引起IE問題。 沒有其他瀏覽器受到影響,請相信我,我嘗試了所有我可以找到的信息。 第一種是嘗試使用innerHTML,setHTML或set('html',myhtml)設置表單標簽。 它只是不適用於所有版本的IE。 IE9和IE10確實存在較少的問題,但是在正常情況下,任何較舊的版本都不會這樣做。 在您建議創建一個表單然后使用DOM命令動態填充它之前,這種情況不允許我這樣做。 大多數頁面需要動態編寫。 也就是說,無論嘗試什么,Mootools都會發送致命錯誤,IE也會發送致命錯誤。 在我的嘗試中,我看到了十幾種不同的錯誤,因此,現在進一步討論該錯誤的含義將無濟於事。 Mootools的較舊版本沒有幫助(我以為是1.2,但是是1.1),因為大多數文獻都只討論最新版本。 唯一可行的解​​決方案對我來說沒有意義,但是其他人已經使用了它,而IE則喜歡它。 在這一點上,我願意嘗試任何事情。 如果您遇到同樣的麻煩,我只是希望您已經找到此頁面。 您需要創建一個假元素,然后像這樣替換真實元素:

    oldDiv = document.getElementById('oldIdGoesHere');
    newDiv = document.createElement('div');
    newDiv.setAttribute("id", "oldIdGoesHere"); 
    // or like this newDiv.id = oldDiv.id;

            //This was my response back from Ajax but it can be 
            //just straight HTML instead of the response variable
    newDiv.innerHTML = response;
    newDiv.className = oldDiv.className;
    oldDiv.parentNode.replaceChild(newDiv, oldDiv); 

我知道...我知道...愚蠢的IE。 在我的情況下,這確實是唯一的解決方案。 謝謝拉爾夫

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM