【问题标题】:change spelling when page loads with jquery使用 jquery 加载页面时更改拼写
【发布时间】:2011-05-20 19:22:40
【问题描述】:

我正在使用一个 twitter 小部件,它使用 twitter api http://widgets.twimg.com/j/2/widget.js 从我的 Twitter 中引入最新的推文。小部件底部有三个链接“回复·转发·收藏”我需要更正“收藏”,以便它在英国拼写(“收藏”)中带有“u”。我想我可以用 jquery 做到这一点:

$(window).load(function () {

    $(".twtr-fav").text('Favourite');
}); 

但这似乎不起作用。有什么想法吗?

【问题讨论】:

  • 看起来不错 - 你真的有 class="twtr-fav" 的元素吗? (如果是id="twtr-fav",则需要$('#twtr-fav'). 是类选择器,# 是 id 选择器)。
  • 是的,它绝对是一门课。我只是尝试了 $(".twtr-fav").hide() 但这没有影响!这真的很令人困惑,因为当我在 chrome 中使用“检查元素”时它肯定存在
  • 这个元素在页面加载时是否存在,还是动态生成的? (最简单的检查方法是将console.debug($(".twtr-fav").size()); 添加到您的函数中 - 如果该元素当时存在,您应该在 Chrome 的控制台中看到“1”)另外,这是所有 A 级浏览器的问题,还是这个特定于浏览器的?
  • 您很可能会在元素通过小​​部件实际注入 DOM 之前尝试选择该元素。

标签: jquery twitter


【解决方案1】:

我查看了代码。这是一个模板系统,在添加新内容时没有回调。我想不出它在添加某些东西时会自动触发的任何类型的事件......

您最好的选择可能是修补(urk)源代码。我将从官方基础记录的 twitter 代码开始:http://twitter.com/javascripts/widgets/widget.js

这是一个简单的单行更改(在第 789 行),但它不能被猴子修补,因为没有全局对象(这正是我讨厌这种函数包装风格的原因)。

如果有人指出我的逻辑或知识库中的漏洞,我会非常高兴,但我就是这么看的。


添加:
我想通了是什么在困扰我……有一种方法可以检测何时添加了 dom 节点:

document.addEventListener('DOMNodeInserted',favoriteChanger); 您可能只想在站点上的所有内容都启动并运行之后才调用它...并且您需要检查 favoriteChanger 以仅处理通过的事件是目标的孩子小部件(因为 ANY 对象将在其他情况下显示)。此外,您可能在低级 IE 上遇到问题。

【讨论】:

  • $(window).load(function () { timeMsg(); });函数 timeMsg() { var t = setTimeout("alertMsg()", 800); } function alertMsg() { $(".twtr-fav").text("Favourite"); }
  • 不。您必须轮询,因为小部件会随着时间的推移而更新。
  • @phil - 哦,要水晶般的......投票在这里是一件非常糟糕的事情。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-29
  • 2014-03-20
  • 1970-01-01
  • 1970-01-01
  • 2011-05-15
  • 1970-01-01
相关资源
最近更新 更多