在按钮中编辑onclick url

时间:2018-05-29 14:05:02

标签: javascript button onclick tampermonkey

我试图在按钮onclick事件中编辑网址。下面是按钮的来源以及我想要从onclick部分剥离的文本。最终目标是拥有一个Tampermonkey脚本,允许我轻松下载stp文件,而无需在单击后手动编辑链接。

删除

"fusion360://command=insert&file=" + 

<button type='button' class="event btn btn-default btn-lg btn-block" onclick='window.location.href = "fusion360://command=insert&file=" + encodeURIComponent("https://assets.sas-automation.com/cad/SWM%203.stp");' data-category="Product Sidebar Right" data-action="Button Click" data-label="Opened CAD File in Fusion" aria-label="button">Open in Fusion360</button>

1 个答案:

答案 0 :(得分:1)

有很多方法可以达到这个目标,这是我想到的一个方法:

  1. 使用getElementsByClassName(或任何其他选择器函数)来抓取按钮
  2. class A { constructor(b) { this.b = b; } doSomething(id) { return this.b.doOther() .then(() =>{ // various things that will return or throw }); } } module.exports = A; 属性值(文本类型)保存到变量
  3. 找到给定的子字符串并将其替换为空字符串
  4. 将结果保存回按钮的onclick属性。
  5. 注意:您的解决方案有一个问题:为了在点击按钮时获得正确的重定向,您必须删除方法onclick,因为网址似乎已经编码。

    你应该好好去。你可以玩这个片段。

    &#13;
    &#13;
    encodeURIComponent
    &#13;
    var button = document.getElementsByClassName('event btn btn-default btn-lg btn-block')[0];
    var onClick = button.getAttribute('onclick')
    .replace(/"fusion360:\/\/command=insert&file="\s*\+\s/, '')
    .replace('encodeURIComponent(', '')
    .replace(');', '');
    button.setAttribute('onclick', onClick);
    &#13;
    &#13;
    &#13;