我有一个奇怪的问题:
我正在开发一个chrome扩展程序,在facebook中的“喜欢”按钮旁边添加一个自定义按钮。到目前为止,有很多帮助我找到了一种方法来运行脚本,即使帖子被添加到新闻源(没有页面刷新)。但问题是,在timline / ticker(右侧的实时馈送窗口)中,按钮随着时间的推移会重复。
我目前的剧本:
$(document).ready(function(){
$(".like_link,.cmnt_like_link").after(
'<span class="dot"> · </span>' +
'<button class="taheles_link stat_elem as_link" title="תגיד תכל´ס" type="submit" name="taheles" onclick="apply_taheles()" data-ft="{"tn":">","type":22}">' +
'<span class="taheles_default_message">תכל´ס</span><span class="taheles_saving_message">לא תכלס</span>' +
'</button>'
);
$(".taheles_saving_message").hide();
$(document).bind('DOMNodeInserted', function(event) {
$(event.target).find(".like_link,.cmnt_like_link").after(
'<span class="dot"> · </span>' +
'<button class="taheles_link stat_elem as_link" title="תגיד תכל´ס" type="submit" name="taheles" onclick="apply_taheles()" data-ft="{"tn":">","type":22}">' +
'<span class="taheles_default_message">תכל´ס</span><span class="taheles_saving_message">לא תכלס</span>' +
'</button>'
);
$(event.target).find(".taheles_saving_message").hide();
});
});
like_link
是新闻Feed /任何其他地方的帖子/评论中显示的按钮。 cmnt_like_link
是评论中显示的按钮。
如果我在选择器中使用#contentArea
,则自定义按钮甚至不会添加到自动收报机中。如果我使用document
(当前),它会在自动收报机中显示,但会重复自身。我想知道问题是什么。我试着看看chrome开发人员面板,但没有运气。
答案 0 :(得分:0)
好的,我自己找到了答案:
只需在事件处理程序中添加$(event.target).find(".tickerDialogContent .taheles_link, .tickerDialogContent .dot, .fbTimelineUnit .taheles_link, .fbTimelineUnit .dot, .fbPhotoSnowliftPopup .taheles_link, .fbPhotoSnowliftPopup .dot").remove();
,如下所示:
$(document).ready(function(){
$(".like_link,.cmnt_like_link").after(
'<span class="dot"> · </span>' +
'<button class="taheles_link stat_elem as_link" title="תגיד תכל´ס" type="submit" name="taheles" onclick="apply_taheles()" data-ft="{"tn":">","type":22}">' +
'<span class="taheles_default_message">תכל´ס</span><span class="taheles_saving_message">לא תכלס</span>' +
'</button>'
);
$(".taheles_saving_message").hide();
$(document).bind('DOMNodeInserted', function(event) {
$(event.target).find(".tickerDialogContent .taheles_link, .tickerDialogContent .dot, .fbTimelineUnit .taheles_link, .fbTimelineUnit .dot, .fbPhotoSnowliftPopup .taheles_link, .fbPhotoSnowliftPopup .dot").remove();
$(event.target).find(".like_link,.cmnt_like_link").after(
'<span class="dot"> · </span>' +
'<button class="taheles_link stat_elem as_link" title="תגיד תכל´ס" type="submit" name="taheles" onclick="apply_taheles()" data-ft="{"tn":">","type":22}">' +
'<span class="taheles_default_message">תכל´ס</span><span class="taheles_saving_message">לא תכלס</span>' +
'</button>'
);
$(event.target).find(".taheles_saving_message").hide();
});
});
如果有人需要,我已添加它以供将来参考。
干杯:)