【问题标题】:How to access unrelated browser window?如何访问不相关的浏览器窗口?
【发布时间】:2013-02-19 01:14:45
【问题描述】:

所以我知道这听起来可能很疯狂,因为我理解这在技术上是一个安全问题。所以我只是想看看是否有关于如何处理这样的事情的任何想法。

总之,长话短说,我被告知要寻找一种可能的方法来从另一个浏览器窗口/标签中抓取信息。我被要求这样做是因为,而且我知道这听起来也很疯狂,但是我们网站的用户不称职,无法从其他网站复制/粘贴或正确输入内容。我知道有些人在他们的工作流程中必须有几件事是很困难的,但这基本上就是他们所做的:访问他们的第一个网站(登录后)并显示一个包含信息的记录......包括一个识别号.然后,用户应该拿那个号码去第二个网站,我们的网站(登录后),然后在文本框中输入那个号码(最后做一些其他的事情)。但我们发现,从第一个网站获取我们的识别号对他们来说很困难。有些复制/粘贴正确,有些从页面复制/粘贴太多文本,有些写在纸上然后在我们的网站上输入,有些似乎只是在视觉上无法从一个站点“复制”到另一个站点的数字。

我当时的想法是,这可能会发生:用户应该已经在第一个站点上提出了记录,然后他们会来到我们的站点。他们可以单击一个按钮,然后运行我/我们在这里提出的任何内容,然后找到另一个浏览器窗口,找到所需的特定文本,并将其放入我们的文本框中。听起来很简单,对吧?哈哈。

第一个网站不以任何方式由我们拥有或管理,否则这可能会更容易一些。

一点背景信息:不幸的是,从技术上讲,我的目标是 IE >= 10 到 9,所以如果有专门的解决方案(为什么我标记为 vbscript),那就太好了。如果有更广泛的解决方案(例如使用小程序或浏览器扩展...http://crossrider.com/),那就更好了,但并不重要。如果它有帮助,我们已经在访问操作系统的页面上有一个隐藏的小程序(是的,它在元素上有mayscript 属性,所以它可以),所以我认为这可能是一些可以合并的东西。此外,我希望通过 URL 和/或 document 标题知道要访问哪个窗口/选项卡的方式 - 两者都非常具体。

我们不能在用户的计算机上安装东西,至少是浏览器之外的东西(比如扩展程序)。我不确定浏览器扩展是如何工作的,所以我想知道它们是否需要“安装”。

我知道 HTML5 的 postMessage,但它仅在 IE 中提供部分支持(在 IE

我在 Java 中找到的东西可能是找到当前正在运行的进程列表,但我不知道如何访问/控制一个。尤其是如何访问浏览器的Document。

还有 vbscript...我只是不知道。我不知道是不是只有我一个人,但我似乎找不到关于它的好的文档,所以我不确定可以用它做什么。

即使我可以控制另一个浏览器窗口,我也不知道如何从中获取信息(例如 DOM)。

我不是在寻找代码,只是在寻找想法……我会进行研究。虽然这听起来不可能,但不要因为 Javascript 做不到而忽略它——我没有。

更新:

我最终使用http://www.crossrider.com/ 开发了一个浏览器扩展程序,这并不理想,但可以工作。

【问题讨论】:

  • 哈哈 怎么太本地化了?当然,我会解释我们非常具体的工作流程,但我不希望有专门针对这种情况的解决方案。如果有的话,我会说它“太”宽泛了。
  • 您最好的办法是达成某种协议以从其他网站获取数据馈送。同源策略将阻止您抓取他们的页面。
  • @SeanMcMillan 好主意。这听起来很愚蠢,但是您指的是哪种“数据馈送”,我将如何处理?请稍作解释。并且大约相同的来源政策 - 这是否适用于应用程序代码?我没有尝试使用 Javascript,我知道它不能发出跨域请求,但是 Applets 或 VBscript 有什么不同吗?对我来说,他们独立于他们所在的网站。也许我错了
  • Ian:对于数据馈送,我的意思是,联系其他网站的所有者,让他们向您发送包含其用户帐户信息的常规文件。我不确定applet 或VBScript 是否能让你绕过这些限制,但我怀疑如果他们这样做了,它很快就会作为一个安全漏洞被关闭。 (Java 插件最近因为一个原因被屏蔽了。)

标签: vbscript applet browser


【解决方案1】:

您可以为此使用书签...用户必须将书签拖到浏览器上的书签栏中,但如果这样做不超出您用户的能力/您提到的技术限制,那么您绝对可以通过这种方式将您需要的信息发送回您的站点。

您只需向用户提供以下说明:
i) 将小书签拖到浏览器上的书签栏中
ii) 前往相关网站并点击书签

您可以对小书签进行编码,以便它获取您需要的信息,并将浏览器重定向到您的网站。一键搞定。

当您谈论从一个“窗口”发布到另一个“窗口”时,我认为您可能以错误的方式思考它。您可以编写小书签,以便它将您想要的任何信息从另一个站点发送到您的站点的 http 发布,它还可以将他们在单击它(另一个站点)时正在查看的窗口重定向到您的站点.或者,如果出于某种原因,您不想将他们拥有“其他”站点的窗口重定向到您的站点,那么您可以向您的站点添加一个侦听器,以便一旦小书签发布了您需要的信息然后显示您的窗口会自动更新。第一个选项会更有意义,也更容易。

【讨论】:

  • 我发誓我已经想到了,但它一定已经离开了我的脑海。所以我想我明白了。他们将无法从一个站点(窗口)调用它并访问另一个窗口,不是吗?就是想。否则,这可能会奏效。尽管如此,这是一个好主意,所以谢谢!
  • 我试图在评论中回复,但太长了,所以我更新了我的答案。
  • 非常感谢您的解释。对不起,我花了这么长时间才回复。我明白你在说什么,不幸的是,这对用户和实施来说工作量太大(我知道,这听起来很疯狂)。无论如何,我会接受这个作为答案,但我最终不得不使用 crossrider.com 制作浏览器扩展。非常感谢您的宝贵时间!
【解决方案2】:

也许可以使用 window.open() method 从您网站中的按钮/链接打开其他网站?

【讨论】:

  • 这是个好主意,可惜我不能强迫用户这样做。他们习惯于以某种方式打开两个不同的窗口(无论如何这有点令人困惑)。无论如何,如果它与我的域不在同一个域中,我不确定我是否可以操纵打开的窗口。我知道我可以打开它,但我无法操纵它,这正是我所需要的。不过感谢您的回复!
猜你喜欢
  • 1970-01-01
  • 2021-10-03
  • 1970-01-01
  • 2013-01-08
  • 2012-05-28
  • 2010-09-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多