繁体   English   中英

为什么我的javascript onclick无法触发?

[英]Why isn't my javascript onclick firing?

我要用一点Javascript来创建Safari扩展。 我在调试它时遇到了一些问题,因此我剥离了特定于扩展程序的组件以进行一些测试。 简短版:单击此javascript生成的按钮( moveButton )不会执行任何操作。 我在Safari的控制台中没有任何错误,并且我能做的最好的Google搜索没有发现任何有用的信息。

我正在生成Javascript中的所有按钮代码,因为一旦将其调整回我的扩展名,就需要传递一个数组。

有什么想法或建议吗? 我要出去吃午饭吗?

function popoverEvent(event) {
    var tabs = new Array("test1","test2","test3");
    var tabsElement = document.getElementById("tab-list");

    tabsElement.innerHTML = ""; // clear previous contents

    var formElement = document.createElement('form');
    formElement.setAttribute('name', 'tabs-form');

    for (var i = 0; i < tabs.length; i++ ) {
        var labelElement = document.createElement('label');
        labelElement.setAttribute('for', 'tab' + i);

        var divElement = document.createElement('div');

        var inputElement = document.createElement('input');
        inputElement.setAttribute('id', 'tab' + i);
        inputElement.setAttribute('name', 'tabcheckboxes');
        inputElement.setAttribute('value', i);
        inputElement.setAttribute('type', 'checkbox');

        var titleElement = document.createTextNode('testTitle' + i);

        var urlElement = document.createElement('div');
        urlElement.setAttribute('class', 'url');
        urlElement.innerHTML = "testURL" + i;

        divElement.appendChild(inputElement);
        divElement.appendChild(titleElement);
        divElement.appendChild(urlElement);
        labelElement.appendChild(divElement);
        formElement.appendChild(labelElement);
    }

    // Create button
    var moveButton = document.createElement('button');
    moveButton.setAttribute('type', 'button');
    moveButton.onClick=function() {alert('Here is a pop up message');};
    moveButton.innerHTML = "Move to New Window";

    formElement.appendChild(moveButton);

    tabsElement.appendChild(formElement);
}

您应该使用onclick而不是onClick

更改:

moveButton.onClick=function() {alert('Here is a pop up message');};

至:

moveButton.onclick=function() {alert('Here is a pop up message');};
    var moveButton = document.createElement('input');
    moveButton.type = "submit";  //don't need that
    moveButton.setAttribute('type', 'button');
    moveButton.onClick=function() {alert('Here is a pop up message');};
     moveButton.innerHTML = "Move to New Window";

并不意味着要两次设置type,而是创建元素'input'而不是'button'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM