jQuery代码无法在Chrome扩展程序的内容脚本中运行

时间:2019-02-22 06:33:04

标签: javascript jquery

我只是想知道是否有人对为什么我的Chrome扩展程序的内容脚本中没有运行此代码有任何输入。该扩展程序已正确设置,因为我在内容脚本中确实有代码可以正常工作,出于某种原因,该代码根本无法正常工作。当我将其粘贴到需要运行代码的页面的控制台中时,该代码就会运行。

代码:

function ucall(user) {
    window.open('test.com/userid=' + user, 'popup', 'width=600', 'height=600')
};
console.log("READY?")
var comments = document.getElementsByClassName('group-comments')[0]
console.log(comments)
$(comments).on('hover', '.wall-comment', function () {
    var user = $(this).find('a')[1].href;
    user = user.replace(/[^\d]/g, ''); console.log(user);
    console.log("do you hover bro?")
    $(this).css({ 'background-color': 'yellow' });
    $(this).click(function () {
        ucall(user)
    })
});

我的理论背后为什么不起作用的原因是,我认为在变量“ comments”中声明的div没有及时加载以使代码执行。 因此,我尝试做$(comments).ready(function(){//code here});那仍然没有用。我很沮丧。另外,我内容脚本中的所有代码都在

内部
$(document).ready(function(){// all content script code in here})

1 个答案:

答案 0 :(得分:0)

我在这里添加了代码,请检查一下。

function ucall(user) {
    window.open('test.com/userid=' + user, 'popup', 'width=600', 'height=600')
};
console.log("READY?")
// Here I have selected the first instance of the class using jQuery
var $comments = $('.group-comments').first();
console.log(comments)
//Used jQuery Instance directly.
$comments.on('hover', '.wall-comment', function () {
    var user = $(this).find('a')[1].href;
    user = user.replace(/[^\d]/g, ''); console.log(user);
    console.log("do you hover bro?")
    $(this).css({ 'background-color': 'yellow' });
    $(this).click(function () {
        ucall(user)
    })
});