我的公司需要使用另一家公司在ASP.NET开发的应用程序。应用程序需要在两个单独的浏览器窗口中打开。开发应用程序的公司在主页面的顶部添加了一些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 :(得分: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标记。
答案 1 :(得分:1)
您可以使用GreaseMonkey for IE,并创建一个小的自定义脚本来覆盖或删除有问题的脚本。
有关在IE中使用greasemonkey脚本的更多information。
答案 2 :(得分:1)
我怀疑应用程序试图阻止同时打开多个窗口以防止因在同一会话中运行两个接口而导致的竞争条件。
如果你可以同时打开两个窗口,它可能会破坏。
最简单的解决方法是运行两个独立的浏览器。每个人都会得到自己的会话,他们不会互相干扰。
答案 3 :(得分:0)
阻止你打开另一个窗口的脚本是window.open的第二个参数,即sessionid
在再次打开窗口之前,检查是否已存在具有该名称的窗口。
不确定那是不是你真正要问的是什么。
答案 4 :(得分:0)
如果您使用的是Firefox,则可以编写一个greasemonkey脚本来覆盖JavaScript函数。
答案 5 :(得分:0)
尝试编写另一个具有相同名称的函数
OpenApplicationWindow
什么都不做