【问题标题】:JavaScript, window.open, clean url's and Internet Explorer 10JavaScript、window.open、干净的 url 和 Internet Explorer 10
【发布时间】:2014-04-02 22:45:50
【问题描述】:

我在我的网站中使用干净的 url(通过 htaccess 实现)。它工作得很好。

正如所料,像这样的地址 (http://www.mysite.com/mypage/param1) 意味着 (http://www.mysite.com/mypage.php?id=param1)。一切都很好,但是......

在这个页面 (mypage.php) 中,我有一个运行一些 JavaScript 的按钮。最后一条指令是:

window.open('otherpage.php?id=x&t=2');

在 Firefox 和 Chrome 中,它会打开正确的页面:

http://www.mysite.com/otherpage.php?id=x&t=2

但是 IE(我在 Windows 8 上使用 IE10)尝试打开不同的东西:

http://www.mysite.com/mypage/otherpage.php?id=x&t=2(好像 mypage 是一个文件夹)

有谁知道我做错了什么以及我必须为 IE 做什么才能打开所需的页面?

任何帮助将不胜感激。

谢谢。

在得到一些答案后(感谢大家的及时回复),我意识到我应该更具体一些。 mypage.php 页面不在根文件夹中,otherpage.php 也不在。由于我系统的性质,我不能使用绝对路径,所以我需要一个可以作为相对路径工作的解决方案(如果可能的话)。

再次感谢您。

【问题讨论】:

  • 而不是 window.open('otherpage.php?id=x&t=2');你能做 window.open('/otherpage.php?id=x&t=2');
  • 您是否将 IE 打开到不同的 URL?如果是这样,请查找相对 url 分辨率。
  • 谢谢正义。不幸的是我不能使用绝对路径。 JavaScript 在许多页面中运行,在不同的位置,因此解决方案(如果可能的话)应该使用相对路径。

标签: javascript internet-explorer window.open clean-urls


【解决方案1】:

对于以斜杠结尾的网址(例如 /mypage/),您需要一个前导斜杠,当您不包含前导斜杠时,它应该始终相对于您当前的路径名打开

window.open('/otherpage.php?id=x&t=2');

【讨论】:

  • 谢谢罗伯。但这会产生一个不同的问题。我应该更具体。有问题的页面(我要打开的页面)不在根文件夹中。我尝试了这个解决方案,但它不起作用,因为它在根文件夹中查找“otherpage.php”。
  • 有道理,希望你能找到解决问题的方法:)
【解决方案2】:

您可以通过相关链接导航到相应的页面。

./ = current directory
../ = one directory higher

因此,如果您的第二页位于与当前目录相同级别的另一个目录中,您可以执行以下操作

./../otherdirectory/otherpage.php

如果它在子目录中,请执行以下操作

./subdirectory/otherpage.php

如果是上两层:

./../../otherpage.php

希望对你有帮助

【讨论】:

  • 感谢 user1883872,但这并不能解决我的问题,因为您的解决方案将适用于所有浏览器。由于我的问题仅在 IE 中,我需要一些可以使问题不可知(克服 IE 限制)或仅对 IE 本身起作用的东西。
  • 也许将引号从 ' 切换为 " 这可能是 IE 中的错误
猜你喜欢
  • 1970-01-01
  • 2013-04-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-13
  • 2012-12-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多