【问题标题】:Onclick statement doesn't show upOnclick 语句不显示
【发布时间】:2013-08-01 20:27:15
【问题描述】:

我正在编写一个 chrome 扩展程序,并且我正在尝试添加一个调用 javascript 函数的链接,即 like in the question

但是,当我单击链接时,什么都没有发生 - 当我查看调试控制台时,“a”节点根本没有“onclick”属性,它看起来像这样:

<a href="#">Add to likes</a>

这是我的代码:

function generateEntry(innerEntry) {    
    var a = document.createElement('a');
    var linkText = document.createTextNode("Add to likes");
    a.appendChild(linkText);
    a.onclick="addToLikes('" + "hello" + "')"
    a.href = "#";
    return a
}

如果我在调试控制台中手动添加“onclick”声明,一切正常。

<a href="#" onclick="addToLikes('hello2')">Add to my likes</a>

我的脚本有什么问题?

【问题讨论】:

    标签: javascript google-chrome-extension


    【解决方案1】:

    onclick 属性以 函数 作为其值,而不是字符串。

    function addHelloToLikes() {
        addToLikes("hello");
    }
    
    a.onclick = addHelloToLikes;
    

    您不妨改用更现代的addEventListener method

    【讨论】:

    • 我从 google 学者结果页面复制了它 - 也许这是我没有得到的东西?:引用
    • @yossale — 这是一个 HTML 属性,而不是 JavaScript 属性分配。
    【解决方案2】:

    你必须使用onclick的功能

    function generateEntry(innerEntry) {    
        var a = document.createElement('a');
        var linkText = document.createTextNode("Add to likes");
        a.appendChild(linkText);
        //a.onClick="addToLikes('" + "hello" + "')"
        a.onclick = function () {
        addToLikes('hello2');
        };
        a.href = "#";
        return a
    }
    

    【讨论】:

    • 完美,你可以把我的回答多有用的回答请
    猜你喜欢
    • 2016-12-01
    • 1970-01-01
    • 2014-02-09
    • 1970-01-01
    • 2011-06-08
    • 2021-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多