导航到页面或网址时使用当前网络目录

时间:2016-02-05 20:26:11

标签: javascript jquery asp.net

我正在更新一个只能在IE 6-9中正常运行的非常旧的Web应用程序(webforms)。它最初不是我写的。另外,我不是Web开发方面的专家,因此解决方案可能非常简单。

一个问题是window.showModalDialog的广泛使用,这是一个特定于IE的调用,它打开一个新的浏览器窗口,禁用打开它的浏览器窗口,如弹出消息。这已被替换为jquery模式对话框,但有时会传递给它的'url'有问题。

以下是该问题的简化复制。有一个javascript函数,它需要一个url和一个id。

function openEdit(url, id) { ...

此功能存在于原始版本中,但它具有打开模式弹出窗口的代码。我用必要的jquery替换它。但是,传递的url值有时没有足够的信息。另外,假设我无法控制在此处传递的值。

假设主页位于localhost/TestSite/Main.aspx。此页面中有许多框架显示其他页面,例如localhost/TestSite/Products/ProductList.aspx - 单击此页面上的项目可能会打开localhost/TestSite/Products/ProductDetails.aspx的窗口。有数百个页面遵循这种通用格式。

有时url的值为'/TestSite/Products/ProductDetails.aspx'。 jquery对话框正确导航到localhost/TestSite/Products/ProductDetails.aspx

但是,其他页面只是传递了页面名称'ProductDetails.aspx',jquery试图在localhost/TestSite/ProductDetails.aspx找到它。这适用于使用window.showModalDialog的IE浏览器,并且浏览器能够获得“Product”的预期目录,因为它与打开窗口调用的目录相同。 Jquery似乎没有实现这一飞跃。

现在,我有一个可能的解决方案,使用window.location来获取当前网址,稍微解析它,并生成一个有效的网址。我担心这会产生什么样的边缘情况,这似乎也是不正确的做法。

有没有办法让jquery使用corrent目录打开一个对话框,或者有没有办法生成一个不涉及window.location的当前目录?或者这是我最好的选择。

0 个答案:

没有答案