在动态html页面中引入另一种Doctype

Introduce another Doctype within a dynamic html page?

本文关键字:另一种 Doctype 动态 html      更新时间:2023-09-26

我试图使用jquery .load()加载页面的一部分,该链接是一个独特的.php页面,手动编写jquery代码,但我面临两个问题:

  1. 以前加载的jquery插件将不再工作,我需要在头部标签内重新加载它们,我需要添加头部标签.....

  2. 我的。php代码将产生一个错误,因为。php文件不是单独加载的,而是作为一个整体,像index.php,但我不希望整个页面得到刷新虽然…

是否可以在htmldiv中加载新的Doctype,或者有更好的做法,如:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Default</title>
<script><!--jquery library here--></script>
<script><!--jquery slidwshow plugin--></script>
</head>
<body>
<div class="header">header template here</div>
<div class="content">
    <!--dynamic html with doctype-->
    <!doctype html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>Default</title>
    </head>
        <body>
            <div>dynamic content loaded here</div>
        </body>
    </html>
    <!--end dynamic html with doctype-->
</div>
<div class="footer">footer template footer</div>
</body>
</html>

谢谢你的帮助!

不能,DOCTYPE只能在页面顶部声明。(以及第一个非空白字符)

为了让生活变得更有趣,不同的浏览器对iframes的处理方式不同。

IE的某些版本允许iframe设置自己的DOCTYPE,其他版本继承父框架。

我不记得哪个版本做了哪个,但我记得以前遇到过这个问题。

编辑

啊,在这里发现了一个讨论-似乎是IE9的iframe继承自父:

DOCTYPE, iFrames, HTML5 - together

如果你的网站是模块化的,你可以在模块中定义doctype。让页面加载检查模块文档类型,然后在标题中使用switch语句。

   global $somemodulename;
   if (($somemodulename == Music)    
   { 
     if(@file_exists(module/somemodulename/includes/doctype.php'))
     {                                                                                                   
       require_once(module/somemodulename/includes/doctype.php');
     }
   }

解析模块子文件夹上加载的doctype.php上面可以做很多不同的我只是试图解释这个概念。

   switch ($doctype) 
   {
     case 'HTML':
     $output =  '<!DOCTYPE html>'."'n";
     $output .= '<meta charset="UTF-8">'."'n";
     define('DOCTYPE', 'HTML');
     break; 
     case 'strict':
     $output =  '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">';
     define('DOCTYPE', 'strict');
     break;
     case 'transitional':
     $output = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">';
     define('DOCTYPE', 'transitional');
     break;
     case 'frameset':
     $output = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">';
     define('DOCTYPE', 'frameset');
     break;
     case 'math':
     $output = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN" "http://www.w3.org/TR/MathML2/dtd/xhtml-math11-f.dtd">';
     define('DOCTYPE', 'math');
     break;
     case 'xhtml11':
     $output =  '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">';
     define('DOCTYPE', 'xhtml11');
     break;
     case 'default':
     $output = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">';
     define('DOCTYPE', 'transitional');
     break;
   }

我已经在PHP-Nuke Titanium中使用了这个,它工作得很好。我的代码稍微复杂一些,但是您可以了解我所说的要点。我使用doctype开关来测试浏览器代码。我从我的浏览器工作台中取出它。这是用来使别人写的旧模块与PHP-Nuke Titanium兼容。

如果你的网站不是模块化的,你可以有你的标题,这样它就被称为独立的。这样,每次页面加载设置模块名页面名,头文件动态调用开关。

你可以将PHP代码嵌入到HTML中,反之亦然:)

这个概念可以用来做你所要求的。我知道这篇文章很老了,但我们都需要分享我们的想法。欢呼声