【发布时间】: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 插件最近因为一个原因被屏蔽了。)