Safari 5 HTML Iframe无法正常使用URL + Params

时间:2010-09-16 17:41:13

标签: html url iframe safari

我在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。

1 个答案:

答案 0 :(得分:2)

你是什么意思改变网址?它是否尝试访问网址http://www.example.com/id=123&amp;place=123?或者它仍然尝试访问http://www.example.com/id=123&place=123?当我尝试将您的示例指向localhost而不是example.com,并记录来自Safari 5的请求时,我会获得&符号&,而不是&amp;

$ 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中使用&amp;实际上是编写它的正确方法;如果你写&,浏览器会尝试将以下文本解释为实体。如果它找不到匹配的实体,那么它会假设您错误地使用了原始&并将使用它,但您需要小心,因为您可能会意外地形成实体而不是您请求的实际&符号。因此,为了避免可能的错误,您实际应该在代码中编写&amp;。如果您正在检查或序列化DOM,例如通过innerHTML,Safari可能会重写URL以便您正确使用&amp;,以避免此类错误。