【问题标题】:jQuery SO Vote-Object and ScopejQuery SO 投票对象和范围
【发布时间】:2009-07-23 17:09:41
【问题描述】:

这是一个javascript问题。它提到这个网站的事实是无关紧要的。这属于元。


当您滚动时,我正在 Stackoverflow 的答案首页上处理 Greasemonkey script to auto-load additional pages 的答案。这运作良好。我想保持对加载的项目进行投票/否决的能力,所以我正在使用 $.live(),它也可以正常工作。

我的问题是 SO 使用的投票对象在 $.live() 方法的范围内找不到,或者至少我认为这是问题所在。

$(".vote-up").live("click", function(D){
  vote.up($(D.target));
});

$.get("/questions/1151074", function(data){
  $("div.answer", data).insertAfter(".answer:last");
});

这是一些示例代码,您可以将其粘贴到 Firebug 控制台中进行测试。您可以在 .live() 调用的上下文中看到该投票不可访问。我该如何解决这个问题?

【问题讨论】:

  • 你试过unsafeWindow.vote.up()吗?
  • @crescentfresh 这似乎让我更近了一步。投票现在具有约束力,但这是一个非常脆弱的互动。不过谢谢。
  • 是的,这就是 Greasemonkey 的做法。这是一种安全措施。忘记的时候很烦人。
  • 是否愿意将其发布为答案以便我接受?

标签: javascript jquery scope greasemonkey


【解决方案1】:

试试unsafeWindow.vote.up()

the docs。这是一种安全措施。忘记的时候很烦人。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-16
    • 2013-04-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多