我正在使用ASP.NET 2.0制作一个非常简单的广告按钮系统
广告是一个150x150像素的正方形,显示在**上 (向下滚动一点,你会在屏幕右侧看到亮绿色的“愤怒八达通”。)
现在,我不是**的管理员。相反,我是angryoctopus.net的管理员 因此,我无法随心所欲地更改广告显示代码。所以我给了**这段代码来很好地展示我们的广告,同时仍允许我自定义后端代码:
<iframe src="http://www.angryoctopus.net/Content/Ad/150x150.aspx"
frameborder="0" width="150" height="150" scrolling="no"
style="padding: 0; margin: 0;"></iframe>
您会在页面来源中找到此代码段<**
就我而言,代码如下所示:
<%--150x150.aspx--%>
<asp:HyperLink runat="server" NavigateUrl="http://www.angryoctopus.net/" Target="_top">
<asp:Panel ID="pnlMain" runat="server" BackColor="#D1E231"
style="padding: 0; margin: 0" Width="150" Height="150">
<asp:Image runat="server" ImageUrl="http://www.angryoctopus.net/Content/Ad/150x150.png"
BorderStyle="None" style="padding: 0; margin: 0" />
</asp:Panel>
</asp:HyperLink>
...还有一些无关紧要的后端C#代码用于点击计数。
据我所知,从代码的角度来看,这看起来很好。一切都适用于Firefox和Chrome。此外,一切似乎都适用于IE8 in all of my tests。我还没有测试过IE7。
但是当您在IE(8)中查看**时,超链接不会执行任何操作,并且光标并不表示超链接就在那里。虽然您可以在状态栏中看到目标URL。
我认为**使用XHTML 1.0 Strict可能会导致问题,但这可能会影响Firefox和Chrome吗? (我的aspx页面使用XHTML 1.0 Transitional)
我唯一的另一个理论是,一些随机的CSS类可能会将一个奇怪的属性应用到我的iframe,但我希望再次影响Firefox和Chrome。
这是IE的安全问题吗?有谁知道**网站的哪些部分可以阻止IE中的超链接?如何在不需要在**网站上进行任何硬编码的情况下解决这个问题?是否有替代iframe可以完成相同的工作而不需要复杂的脚本编写?
答案 0 :(得分:3)
要做的第一件事是确保您的网页是有效的XHTML。目前有1029 validation errors。如果您的加价无效,那么您不能指望浏览器一致地解释和呈现您的内容。
要注意的一件事是,您的网站声明了XHTML 1.0 Strict的文档类型,而iframe在此doctype中无效。你可能想要使用XHTML Transitional,它允许它。
另外,你自己的HTML with your add in is also broken.你有一个关闭DIV在错误的地方。你的加价看起来像这样:
<a href="http://www.angryoctopus.net/" target="_top">
<div id="ctl00_cntBody_pnlMain" style="background-color:#D1E231;height:150px;width:150px;padding: 0; margin: 0">
<img src="http://www.angryoctopus.net/Content/Ad/150x150.png" style="border-style:None;border-width:0px;padding: 0; margin: 0" />
</div></a>
您应该将结束DIV移动到结束A标记之外。
正如我所说,请确保validate your HTML,因为这些错误会突出显示。有效的加价不仅仅是一个精确的标记,它必须确保您的内容在多个浏览器中正确呈现。