2009-06-16 140 views
1

我的公司需要使用另一家公司在ASP.NET开发的应用程序。应用程序需要在两个独立的浏览器窗口中打开。开发该应用程序的公司在主页顶部添加了一些JavaScript以阻止用户打开应用程序的多个实例。被放置在主页顶部的脚本如下:停止JavaScript关闭窗口

<script type="text/javascript"> 
    function OpenApplicationWindow() { 
    var sessionId = 'sidus455bjzspf55cunqrv55'; 
    if (window.name.search(sessionId) == -1) { 
     window.open(window.location.href, sessionId, "resizable=yes,scrollbars=yes,toolbar=no,status=yes"); 
     window.open('', '_parent', ''); 
     window.close(); 
    } 
    } 
    OpenApplicationWindow(); 
</script> 

反正有没有打开链接到该页面,并允许多个实例打开?或者无论如何阻止脚本运行。

+0

大概你没有源代码,这个其他应用程序相同的名称

OpenApplicationWindow

? – RichardOD 2009-06-16 19:30:05

+0

不,我们不会访问源代码。 – Lukasz 2009-06-16 19:41:52

+0

sessionId是否动态?每次打开应用程序时都不一样?或每次都是一样的? – 2009-06-16 19:46:50

回答

1

短禁用JavaScript的(这可能会导致其他问题),我能想到的唯一的事情就是写一个小代理剥夺的东西出来。

如果你只需要在这几个工作站,你可以使用Fiddler与脚本编辑器来检查和修改响应。

http://www.fiddler2.com/Fiddler2/version.asp - 下载Fiddler
http://www.fiddler2.com/fiddler/FSE.asp - 下载脚本编辑器。
http://www.fiddler2.com/Fiddler/Dev/ScriptSamples.asp - 请参阅此页上的示例以删除所有div标签。

+0

你能告诉我一些关于如何做这种事的资料吗? – Lukasz 2009-06-16 19:43:04

0

是阻止你打开另一扇窗的脚本是第二个参数,它的SessionID

据检查窗口不使用该名称已经再次打开它之前存在window.open。

不知道这是不是真的问你是否。

+0

对不起,我明白为什么/它是如何阻止我打开两个窗口。我问的是如何打开多个窗口。 – Lukasz 2009-06-16 19:40:56

0

如果您使用Firefox,您可以编写一个greasemonkey脚本来覆盖JavaScript函数。

1

您可以使用GreaseMonkey for IE,并创建一个小的自定义脚本覆盖或删除有问题的脚本。

更多information关于在IE中使用greasemonkey脚本。

1

我怀疑应用程序试图阻止有多个窗口同时防止因具有同一会话操作两个接口竞争条件开放。

如果您可以一次打开两个窗口,则可能会中断。

最简单的解决方法是运行两个独立的浏览器。每个人都会得到自己的会议,他们不会互相干扰。

0

尝试写另一个函数,什么也不做