为什么Chrome间距在一个JS文件中而不在另一个JS文件中?

时间:2010-06-04 00:30:52

标签: javascript google-chrome whitespace

更新:Bug已解决。答案点可以解释为什么修复有效。

如果您突出显示并复制此页面第一段中的文本,然后将其粘贴到富文本编辑器(Dreamweaver或富文本格式的gmail)中,您将看到某些文本是自动链接的。基本上,它有效:

http://seox.org/link-building-pro.html - > http://seox.org/lbp/old-pretty.js

我正在尝试构建第二个版本,但在某个地方我打破了它。如果您在此新网址上执行相同的处理,则会在Chrome中删除链接之前和之后的间距:

http://seox.org/test.html - > http://seox.org/lbp/lb-core.js

为什么间距在第一个中正常工作,而在第二个中不能正常工作?更重要的是,我如何修复第二个,以免它出错?

之前我问过这个问题的变体,得到了一个有用而有趣的答案,但希望这次我已经详细询问了这个问题。上一个问题,我有一个很难理解的答案,位于这里: Javascript: Whitespace Characters being Removed in Chrome (but not Firefox)

提前感谢您的时间!


编辑:我在这篇文章中添加了一笔赏金,非常感谢如何修复错误的精确说明(而不是一般性的建议。

为了更好地说明这个错误,我复制了下面的灰色框(从第二页开始)。请注意如何在标记之前和之后删除间距:

Link Building 2 is an amazing tool that helps your website visitors share your content, with proper attribution. It connects to email, social sharing sites, eCommerce sites, and is the<a href="http://seox.org/test.html#seo">SEO</a>'s best friend. Think of it as the sneeze in the viral marketing metaphor.
<div>
  <p id="credit"><br />
    Read more about<a href="http://seox.org/test.html">Text Citations</a>by<a href="http://seox.org">seox.org</a></p>
</div>

第二次更新:

我能够通过在函数processSel()的顶部添加以下内容来解决错误:

    lbp.vrs.holder.style.position = "absolute";

我会给那些能够最好地解释为什么修复chrome中的间距问题的人给出正确的答案。

4 个答案:

答案 0 :(得分:1)

第30行有拼写错误。

... by <a href='http://" + lbp.page.domain + "' />" + lbp.defaults.author ...
                                                ^ (extra "/" before ">")

答案 1 :(得分:0)

在lb-core.js文件的第30行。试试这个:

lbp.defaults.credit = "<p id='credit'><br/>Read more about&nbsp;<a href='" + lbp.page.url + "'>" + lbp.page.randKeyword + "&nbsp;</a>&nbsp;by&nbsp;<a href='http://" + lbp.page.domain + "' />&nbsp;" + lbp.defaults.author + "&nbsp;</a></p>";

编辑:我无法解释为什么Chrome会这样对待它,但是如果您问的是position:absolute;做了什么,它会从块的布局中删除该元素。页面,以便元素不占用页面上的任何“空格”。然后使用您指定的坐标对其进行定位,以查看页面实际放置的位置。为什么那会影响你所看到的我真的不能说。我想你现在可能正在处理浏览器中的错误?也许带有lbp.vrs.holderHider.style.left = "-9999px";的东西可能由于某种原因而导致负边距是一个问题,除非使用position:absolute

从元素块中删除元素

答案 2 :(得分:0)

    lbp.vrs.holder.style.position = "absolute";

将上面的内容添加到processSel()函数的顶部修复了Chrome的奇怪间距问题。似乎设置一个位置会触发某种“我在页面上”的意识(或某些东西)。但得到这个,“亲戚”不起作用!


现在我们已经有了解决方案......有没有人想尝试解释它为什么会这样运作?

答案 3 :(得分:0)