gpt4 book ai didi

php - 如何防止 Internet Explorer 重写我的文本?

转载 作者:行者123 更新时间:2023-11-30 10:50:35 25 4
gpt4 key购买 nike

我有一个包含 url 的 javascript 变量,通过从 php 输出脚本标记来填充。目的是在某些情况下将网页更改为该 url。

var url = "/somepage?q=3&region=1";

问题是 url 包含序列“®”,Internet Explorer 会在没有询问的情况下更改为“®”。

我试过使用 htmlspecialchars 转义整个 url,这会破坏其他浏览器。关闭怪癖模式可能会有所帮助,但它不是当前系统的选项。添加到脚本标签没有任何作用。

编辑:我想出了一个解决方案,通过连接“转义”url。

var url = '<?php implode( "&'+'", explode( '&', '/somepage?q=3&region=1' ) ); ?>';

我还意识到我可能应该提及我是如何更改页面的:

document.location.href = url;

编辑:原来我的脚本标签有错误。显示相同“问题”的最小示例:

<script type="text/javascript" />
var url = "/test?mode=preview®ion=1";
</script>

自闭开始标签在这里很重要。

最佳答案

应该是var url = "/somepage?q=3&region=1";

始终在 URL 中使用 & 以便浏览器理解这是一个查询分隔符并且不认为它指的是某个 htmlentity(这里的问题是 IE 不关心分号是否存在或不是,并假设 ® 应该是 ®)

编辑:真实上下文是在我回答之后添加的,正如问题本身和评论中所指出的,如果您打算使用变量来重定向,则不应使用 & window.location

但是,由于我们手头有 PHP,如果 javascript 重定向不是某些其他复杂脚本的一部分,我建议使用这样的 PHP 代码:

<?php
header('Location: http://domain/somepage?q=3&region=1');
exit();
?>

关于php - 如何防止 Internet Explorer 重写我的文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5623415/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com