我试图使用jquery .load()加载页面的一部分,链接是一个带有手动编写脚本的jquery代码的唯一.php页面,但我遇到两个问题:
之前加载的jquery插件将不再有效,我需要在head标签中重新加载它们,我需要添加一个head标签来做到这一点......
我的.php代码会生成一个错误,因为.php文件并不是单独加载的,而是像index.php一样整体加载,但我不想要整个页面要刷新......
可以在html div中加载新的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>
感谢您的帮助!
答案 0 :(得分:1)
不,DOCTYPE只能在页面顶部声明。 (还有第一个非空白字符)
为了让生活变得如此有趣,iframes
由不同的浏览器以不同的方式处理。
IE
的某个版本允许iframe
设置自己的DOCTYPE
,其他版本则从父框架继承。
我无法回想起哪些版本可以做到,但我记得之前遇到过这个问题。
修改强>
AH,在这里找到了一个讨论 - 似乎是IE9,其中iframe
继承自父母:
答案 1 :(得分:0)
如果您的网站是模块化的,您可以在模块中定义doctype。让页面加载检查模块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和反之亦然:)
这个概念可以用来做你所要求的。我知道这篇文章很老,但我们都需要分享我们的想法。干杯