javascript
  • greasemonkey
  • 2016-04-26 24 views 0 likes 
    0

    我试图在web Whatsapp上使用greasemonkey运行脚本。但是效果不好。 代码需要打开新的窗口,并与内容刷新:在web上运行脚本whatsapp

    [第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>'; 
    } 
    

    [第2部分:]

    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>'; 
    

    按钮不工作(不开新窗户)..

    Thx的帮助。

    编辑:清除了只显示问题的代码。

    +0

    请检查开发者控制台(按F12)。单击按钮之前或之后是否有任何错误消息? – CherryDT

    +0

    不,没有任何反应。在我的计算机上的HTML页面,它工作正常......(将转换代码复制到它) –

    +0

    好的,我看到一个错误,不是来自网站本身:内容安全策略:页面的设置阻止了自我加载资源(“script-src https://web.whatsapp.com'unsafe-eval'https://ajax.googleapis.com”)。 –

    回答

    0

    看起来你不能使用onclick属性在这个页面上,由于其Content Security Policy

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

    1)创建“添加”按钮可能最好在JS中完全创建它,并在其中设置所有属性,因为从第一个窗口看起来像我可以有多个,并且您正在创建和删除它们再次取决于用户的行为。

    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)为其创建只有一次,我们可以保持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属性。)

    +0

    Thx很多,解决了问题 –

    相关问题