正如标题所示,我试图在运行时逐页注入一个文档类型。
该应用程序使用带有大量内容页面的单个母版,因此我自然尝试在母版上插入控件,并在内容页面上asp:contentplaceholder
使用控件。asp:content
这是因为当您查看源代码时会显示 doctype 元素,但由于某些被上帝抛弃的原因,浏览器 (IE8) 仍以 Quirks 模式运行而不起作用。
这是主人的占位符:
<asp:contentplaceholder id="doctype" runat="server" />
这是页面上的内容面板:
<asp:content contentplaceholderid="doctype" runat="server" >
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
</asp:content>
我有点困惑为什么这不起作用,因为替换应该发生在服务器端,然后输出被发送到浏览器,文档类型已经到位......
我为什么要这样做?
我这样做只是因为在 master 上指定一个 doctype 意味着我需要去修复大量的内容页面,然后才能开始处理分配的任务。如果我能找到一种通过某些内容页面注入 doctype 的方法,那么我可以一次有效地修复一个页面,直到它们完成。
这会影响哪些浏览器?
Internet Explorer 8是我们的主要目标。具有讽刺意味的是,浏览器实际上忽略了注入的文档类型。document.doctype
在加载 DOM 后在运行时检查时,它返回null
.
Firefox的行为不同。这种技术实际上适用于 Firefox,但对 [我] 并没有真正的帮助,因为我们所有的用户都被 Internet Explorer 8 卡住了。