【问题标题】:How to open a child browser window and then execute a script on the newly loaded child browser page to click a link in it如何打开子浏览器窗口,然后在新加载的子浏览器页面上执行脚本以单击其中的链接
【发布时间】:2013-01-26 07:23:23
【问题描述】:

我有 2 个 Web 应用程序 A 和 B(对于熟悉 Zoho 的人,A 是 Zoho Creator,B 是 Zoho Invoice)

从 Web 应用程序 A,我需要在应用程序 B 中打开一个页面并进入 B 中的特定视图,该视图只能通过单击 B 中页面上的链接获得(因为该视图是通过 AJAX 加载获得的风景)。

B 的限制是它不会通过带有参数的 URL 公开我想要的特定视图(即,我无法通过新的浏览器窗口请求 www.appB.com/somePage 来获得我想要的东西? ID=1233。我只能让新的浏览器窗口请求 www.appB.com/somePage 然后我需要手动单击 B 中的 AJAX 链接,打开我想要的视图)。

A 的限制是我无法访问 javascript。我在新的浏览器窗口中打开另一个 Web 应用程序的方式有限(Zoho Creator 的 Deluge 语言)。我所能做的就是给A的网页一个URL并告诉它在同一个窗口或新窗口中打开它。所以在打开新的浏览器窗口时,我对 A 的网页的唯一操作能力就是新网页的 URL。

我想要完成的是 - 从 A 的网页仅通过 URL 打开新的浏览器窗口,该窗口加载 B 的初始页面,然后我的 javascript 执行并单击 B 上的链接,该链接在 B 的浏览器中加载所需的 AJAX 视图窗口。

关于如何让它发挥作用的任何想法?非常感谢您的意见,并在此先感谢您。

【问题讨论】:

  • 如果您在 A 或 B 中没有 javascript,您的 javascript 是从哪里运行的?另外,A 和 B 是否在同一个域中?
  • 在 A 中,我无法运行 javascript。我想在 B 中注入一些 javascript - 可能是通过打开 B 的 URL。A 和 B 不在同一个域中。
  • URL 参数不能注入 javascript。听起来您没有任何能力在 A 或 B 中运行 javascript。仅供参考,当 A 和 B 是不同的域时,由于同源安全限制,您不能使用其中一个域的 javascript 对另一个域进行操作浏览器。听起来您需要对页面 B 进行修改,以便它可以加载基于 URL 参数的视图。
  • 嗯...我无法控制 B :(!否则已经实现了 URL 参数。感谢您调查我的问题。如果您有任何其他想法,请分享。谢谢。
  • Moiz,您能告诉我您要打开的视图的名称吗?也许我会和 Zoho Invoice 团队讨论这个问题。

标签: javascript url popup zoho


【解决方案1】:

总结一下我之前cmets的结论:

  1. 您不能通过页面 URL 将 javascript 注入页面。您可以在 URL 中传递参数,但接收页面需要已经编码才能对这些参数进行操作。
  2. 如果两个页面位于不同的域中并且没有预先设计为协作,则您不能使用一个页面中的 javascript 来作用于另一个页面。这是称为同源策略的安全限制,您可以阅读有关 here 的信息。
  3. 因此,如果您无法以任何方式修改页面 B,并且 B 与 A 位于不同的域中,并且 A 和 B 没有预先设计为合作,那么您无法从 A 单击 B 中的链接。李>

【讨论】:

  • 扩展的唯一途径
猜你喜欢
  • 2022-06-11
  • 1970-01-01
  • 2011-02-18
  • 2012-11-12
  • 2015-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多