嘿大家,我正在尝试建立一个网站的问题;基本上我有一个类,我从我的头文件调用,加载所有链接和脚本标记。链接标记显示在所有浏览器中,但脚本标记仅显示在safari和chrome中,它们不会显示在firefox或IE中。
<script type='text/javascript' src='...'>
现在我尝试删除“&lt;”在标签的前面只是为了看看会发生什么,然后它会显示为纯文本,但是只要我把“&lt;”回来它又是MIA。
所以这是php中正在发生的事情。我的 header.php 文件调用位于 cms.php 中的cms对象函数,这些函数调用我的 system.php 文件中的其他函数。
现在,链接标签再次起作用,我用同样的方式调用它们......它只是愚蠢的脚本标签。当我调用load_js(“config”)时;我的header.php中的函数也会加载多个标签。如果它只是1个标签,我会把脚本标签放在html中,而不是放在php中,但是当我生成多个标签时,我认为我不能这样做。
任何帮助都会很棒!也要提前感谢!
<?php echo $this->load_css("config"); ?>
<?php echo $this->load_js("config"); ?>
function load_js($name){
// ...
return header_script($name.".js");
// ...
}
function load_css($name){
// ...
return header_link($name.".css");
// ...
}
function header_script(){
// 0 = src
$num = func_num_args();
if($num == 0){
return;// if no arguments, can't successfully build header_script.
}
if($num == 1){
return "<script type='application/javascript' src='".func_get_arg(0)."'></script>\n";
}
}
function header_link(){
$num = func_num_args();
// 0 = rel
// 1 = type
// 2 = href
if($num < 3){
return; // can't successfully build link.
}
if($num == 3){
return "<link rel='".func_get_arg(0)."' type ='".func_get_arg(1)."' href='".func_get_arg(2)."' />\n";
}
}
答案 0 :(得分:2)
首先,某些浏览器无法识别application/javascript
。您应该将其更改为text/javascript
其次,正如评论(Justin Johnson)中所提到的,您应该使用默认值在函数定义中使用参数:
function header_script($name = '')
{
if ($name != '') {
return '<script type="text/javascript" src="'.$name.'"</script>';
}
}