我在IFRAME中有一个URL,参数如下:
<iframe src="http://www.example.com/id=123&place=123"></iframe>
完美适用于FF3 +,IE6 +(相信我)和Safari 4,但在Safari 5中则不同。 S5将网址更改为http://www.example.com/id=123 &amp; amp; place = 123
有人知道如何解决这个问题的解决办法?
TKS。
答案 0 :(得分:2)
你是什么意思改变网址?它是否尝试访问网址http://www.example.com/id=123&place=123
?或者它仍然尝试访问http://www.example.com/id=123&place=123
?当我尝试将您的示例指向localhost
而不是example.com
,并记录来自Safari 5的请求时,我会获得&符号&
,而不是&
$ nc -l 4242 GET /?id=123&place=123 HTTP/1.1 Host: localhost:4242 User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_8; en-us) AppleWebKit/533.17.8 (KHTML, like Gecko) Version/5.0.1 Safari/533.17.8 Accept: application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5 Referer: http://livedom.validator.nu/blank.html Accept-Language: en-us Accept-Encoding: gzip, deflate Connection: keep-alive
请注意,在源中的URL中使用&
实际上是编写它的正确方法;如果你写&
,浏览器会尝试将以下文本解释为实体。如果它找不到匹配的实体,那么它会假设您错误地使用了原始&
并将使用它,但您需要小心,因为您可能会意外地形成实体而不是您请求的实际&符号。因此,为了避免可能的错误,您实际应该在代码中编写&
。如果您正在检查或序列化DOM,例如通过innerHTML
,Safari可能会重写URL以便您正确使用&
,以避免此类错误。