簡體   English   中英

jqzoom錯誤:找不到節點

[英]jqzoom error: Node was not found

嘗試查找不良的圖像替換錯誤。 原始img源中會彈出不同大小的圖像。

不幸的是,在我的PC上,無論使用什么瀏覽器(Firefox,chrome,safari),該錯誤都是“無聲的”,並且不會引起問題。

但是,使用firebug和chrome工具對其進行跟蹤似乎表明這是由於Firefox中出現“未找到節點”錯誤(chrome:“ NOT_FOUND_ERR:DOM異常8”))

這應該是WordPress插件jigoshop的所有標准代碼。 可能是因為無論誰將圖像放在首位,都不了解圖像大小的關系。

無論如何,這里都打破了:

document.body.removeChild(this.node);

大約13行(jquery.jqzoom-core.js中的653行)

this.fetchdata = function () {
var image = $(this.node);
var scale = {};
this.node.style.display = 'block';
$obj.w = image.width();
$obj.h = image.height();
$obj.pos = image.offset();
$obj.pos.l = image.offset().left;
$obj.pos.t = image.offset().top;
$obj.pos.r = $obj.w + $obj.pos.l;
$obj.pos.b = $obj.h + $obj.pos.t;
scale.x = ($obj.w / smallimage.w);
scale.y = ($obj.h / smallimage.h);
el.scale = scale;
document.body.removeChild(this.node);
$('.zoomWrapperImage', el).empty().append(this.node);
//setting lens dimensions;
lens.setdimensions();
};

它找不到的節點是:,它是在加載html之后找到的:

<div class="zoomWrapperImage" style="width: 100%; height: 496px;">
<img style="position: absolute; border: 0px none; display: block; left: -5000px; top: 0px;" src="http://xyz.com/shop/wp-content/uploads/2011/10/go-291x496.jpg">consoleName="jQuery.data"consoleKind="Element"consoleFramework="jQueryUI-1"consoleId="73"
</div>

我已經過多地研究了jQuery。 因此,有2個問題:

  1. 如何解決這個確切的問題?
  2. 解決此類錯誤的一般流程是什么?

我找到了一種解決方法。 不過,我不會將其稱為正確的解決方案。 解決方法是:

  1. 將以下內容添加到jquery.zqzoom.core.js的頂部(從某些被遺忘的源中找到的函數):

    函數isInDocument(el){var html = document.body.parentNode; while(el){if(el === html){返回true; } el = el.parentNode; 返回false; }

  2. 在665號線之前:

    document.body.removeChild(this.node);

添加:

if(isInDocument(this.node))

這將阻止異常的發生並允許腳本繼續。

這沒有解決我的問題。 但更換

document.body.removeChild(this.node);

與:

this.node.parentNode.removeChild(this.node);

解決了我的問題,不太確定這是否是正確的方法。

removeChild()函數要求您引用您要刪除的節點的父節點。 Document.body不是您要刪除的父節點。 因此,您必須獲取節點的父節點並在removeChild()使用它。

*parentnode*.removeChild(*node trying to remove*);

使用最新版本的jqzoom。 您可以在github上找到它

暫無
暫無

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

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