我想知道是否有一种方法可以从服务器端检测页面被指定为哪个 DOCTYPE。我在自定义 WebControl 中有一些 HTML 和 CSS,根据页面的 DOCTYPE 呈现不同。有没有我可以检查的Page
财产或财产?Response
3 回答
为什么你的控件上没有一个枚举或布尔值,消费页面可以设置(它不像文档类型应该从一个页面更改为另一个页面)?
DocType 不会因页面而异,但您有时确实需要访问它。我目前正在互联网上搜索,试图获取这些数据。
我知道它在第一个 HTMLElement (DomElement.data) 中,因为它在调试模式下正确列出,但使用类似 -
dElementList[str].DomElement.data;
这似乎是我需要获取的数据存在的唯一地方,里面的数据
是不可能的。我怀疑特定元素类型需要强制转换,但我还没有遇到过。DomElement 的 MSDN 示例不访问任何元素,但它们的代码与我的基本相同,dElement 是字典,str 是元素的 ID 或标签(在本例中,'!'来自它的标签),字典返回一个 HTMLElement。
那么有谁知道我们如何在 DomElement.data 获得?
问题是,DOCTYPE 是客户端声明,它不参与 ASP.NET 页面的控制结构(因为它存在于html
页面元素之外)。我同意@TheCloudlessSky,将设置传递给控件,因为我可以看到您检测 DOCTYPE 的唯一方法是打开文件本身并读取第一行,这对于已编译的 Web 应用程序也毫无用处。
为什么 DOCTYPE 会随着页面的变化而变化?