在web whatsapp上运行脚本

时间:2016-04-26 18:14:19

标签: javascript greasemonkey

我尝试在web whatsapp上运行带有greasemonkey的脚本。但效果不是很好。 代码需要打开新窗口并使用内容刷新它:

[第1部分:]

var list = main[0].getElementsByClassName("msg");
var i;
for (i = 0; i < list.length; i++) {
  list[i].innerHTML += '<button type="button" class="addButton" onclick="javascript:addNewMsg(this.parentElement)">Add</button>';
}

[第二部分:]

document.body.innerHTML += '<div style="position:absolute;bottom:20px;right:20px;z-index:80;border:1px black solid"><button type="button" id="startButton" onclick="javascript:us_openWAwindows()">Start</button></div>';

按钮不工作(不打开新窗口)..

请求帮助。

编辑:清除代码以仅显示问题。

1 个答案:

答案 0 :(得分:0)

由于其Content Security Policy,您似乎无法在此页面上使用onclick属性。

请尝试使用您在JavaScript中附加的事件侦听器,而不是HTML中嵌入的JS代码。

1)创建&#34;添加&#34;按钮最好是在JS中完全创建它并在那里设置所有属性,因为从第一个glace它看起来像我可以有多个,你根据用户的作用再次创建和删除它们。

for (i = 0; i < list.length; i++) {
    var btn = document.createElement("button");
    btn.setAttribute("type", "button");
    btn.setAttribute("class", "addButton");
    btn.addEventListener("click", function() {
        addNewMsg(this.parentElement);
    });
    btn.innerHTML = "Add";
    list[i].appendChild(btn);
}

2)对于&#34;开始&#34;按钮只创建一次我们可以保留HTML,如果你想要并使用它的ID来引用它(虽然你也可以使用与我上面相同的方法):

document.body.innerHTML += '<div style="position:absolute;bottom:20px;right:20px;z-index:80;border:1px black solid"><button type="button" id="startButton">Start</button></div>';
document.getElementById("startButton").addEventListener("click", us_openWAwindows);

(请注意,我从两者中删除了onclick属性。)