在onClick事件后修改新打开的页面

时间:2014-08-21 22:25:41

标签: javascript onclick window greasemonkey tampermonkey

我实际上正在使用Greasemonkey / Tampermonkey脚本,该脚本可归结为以下操作:

  • 存储有关给定页面的数据(假设是wiki条目):Title / Author / Creation date / Additional links
  • 从所述页面中,它在标题旁边添加了一个新链接(例如)
  • 点击该链接后,它会重定向到表单(完全不同域中的页面)并将结果粘贴到所有字段中

我已经可以实现的目标是:

  • 解析DOM以获取所需信息(document.getElement(s)By(Id|TagName|ClassName)
  • 存储数据(使用sessionStorage.setItem
  • 检索存储的数据(sessionStorage.getItem
  • 在页面中添加我需要的链接,其中包含加载新页面的嵌入式onClick事件(window.open('url', '_blank')
  • 登录到控制台(console.log)或显示弹出窗口(window.alert)以帮助我调试

不幸的是,一旦打开新页面,我所有修改内容的尝试都没有用。为了调试,我尝试打开一个新页面,打开后,调用alert(document.getElementById('test').innerHTML),但它总是返回null,可能是因为“旧”页面上不存在由此ID设计的元素。 / p>

你能否指出我正确的方向(当然,如果我想要达到的目标是可能的话)?

修改

我想我可以举一个更具体的例子:

  • 我的GM脚本适用于https://apple.domain.com
  • 访问https://apple.domain.com时,会在列表中的每个链接旁边添加一个链接
  • 当我点击新链接(由我的GM脚本添加)时,它会打开一个新窗口/标签到https://banana.domain.com(同一个域)
  • 一旦开启https://banana.domain.com(基本上是表格),GM脚本会填写https://apple.domain.com网页中的所有字段(使用sessionStorage存储的数据)

1 个答案:

答案 0 :(得分:0)

由于我无法绕过我的两个站点之间的跨域问题(我认为属于XSS类别),我通过使用2个特定的GM / TM脚本来解决它:

  • https://apple.domain.com
  • 之一
  • https://banana.domain.com
  • 之一

当我完成https://apple.domain.com域名后,我只需使用自定义网址调用https://banana.domain.com域名,其中包含我的所有参数作为参数。那样,一旦我进入https://banana.domain.com域,我只需解析URL并从中检索所需的参数。