HTML链接标记的奇怪行为

时间:2010-10-09 02:14:10

标签: html uri httprequest quotes

我们在使用html标签时遇到了一种奇怪的行为。实际上问题是因为标签的使用不当。因此,该页面在Mozilla Firefox中提交了3次,在IE7中提交了2次。这是问题所在。

<link rel="stylesheet" type="text/css" title="Style" href=''/css/image.css'>

这是我们在J2EE应用程序中使用的代码。当我们检查请求和响应时(使用HTTP Watch),我们发现该页面是从服务器请求了3次。我们发现href=之后的其他“引用”导致了问题。我们无法找出导致多页提交的原因。是因为,附加引用使href为空,并且因为该浏览器尝试从加载页面的同一URL加载styleclass? 有人可以帮忙找出发生这种情况的原因吗?任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

这个解释来自this article on Yahoo Developer site。部分避免空图像src

When an empty string is encountered as a URI, it is considered a relative URI and is resolved according to the algorithm defined in section 5.2. This specific example, an empty string, is listed in section 5.4.

虽然仍然不清楚此行为是否会影响href(该文章主要涉及空src)。但看起来确实如此:

Hopefully, browsers will not have this problem in the future. Unfortunately, there is no such clause for <script src=""> and <link href="">. Maybe there is still time to make that adjustment to ensure browsers don't accidentally implement this behavior.

注意:我从未遇到过这样的行为,所以这只是理论上的答案:)

答案 1 :(得分:0)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en" xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
    <head>        
    </head>
    <body>
        <table width="100%" cellspacing="0" cellpadding="0" border="0" class="mainOutterTable">
            <tbody>
                <tr>
                    <td>
                        <table class="layoutColumn" cellpadding="0" cellspacing="0">
                            <tr>
                                <td style="width:100%;" valign="top">
                                    <table class="layoutRow" cellpadding="0" cellspacing="0">
                                        <tr>
                                            <td valign="top" width="910">
                                                <table class="layoutColumn" cellpadding="0" cellspacing="0">
                                                    <tr>
                                                        <td style="width:100%;" valign="top">
                                                            <table class="layoutRow" cellpadding="0" cellspacing="0">
                                                                <tr>
                                                                    <td valign="top" width="294">
                                                                        <table class="layoutColumn" cellpadding="0" cellspacing="0">
                                                                            <tr>
                                                                                <td style="width:100%;" valign="top">
                                                                                    <a name="7_N1K8HIC0GOO780I2B1KASD3047"></a>
                                                                                    <div class="wpsPortletBody">
                                                                                        This is a sample textf 3.
                                                                                        <link rel="stylesheet" type="text/css" title="Style" href=''/>
                                                                                    </div>
                                                                                </td>
                                                                            </tr>
                                                                        </table>
                                                                    </td>
                                                                </tr>
                                                            </table>
                                                        </td>
                                                    </tr>
                                                </table>
                                            </td>
                                        </tr>
                                    </table>
                                </td>
                            </tr>
                        </table>
                    </td>
                </tr>
            </tbody>
        </table>
    </body>
</html>

我能够在测试页面上重现问题。alt text

这在http://www.apps.ietf.org/rfc/rfc3986.html#sec-5.2的第5.2节中提到 如果Relative路径为空,则目标URI是基本路径。     if(R.path ==“”)然后                    T.path = Base.path;