Firefox и IE не отображаются " - PullRequest
0 голосов
/ 26 июня 2010

Привет всем, у меня проблема с сайтом, который я пытаюсь создать; в основном у меня есть класс, который я вызываю из моего заголовочного файла, который загружает все теги ссылки и скрипта. Теги ссылок отображаются во всех браузерах, но теги сценариев отображаются только в Safari и Chrome, они не отображаются в Firefox или IE.

<script type='text/javascript' src='...'>  

Теперь я попытался удалить «<» в начале тега, просто чтобы посмотреть, что произойдет, и тогда он будет отображаться в виде простого текста, но как только я верну «<» обратно, это снова MIA. </p>

Итак, вот что происходит в php. Мой header.php файл вызывает объектную функцию cms, расположенную в cms.php , а эти функции вызывают другие функции в моем system.php файле.

Теперь снова теги ссылок работают без заминки, и я называю их точно так же ... это просто тупые теги сценариев. Когда я вызываю load_js («config»); Функция в моем header.php будет загружать несколько тегов. Если бы это был всего 1 тег, я бы поместил теги script в html, а не в php, но я не думаю, что смогу сделать это, когда создаю несколько тегов.

Любая помощь будет отличной! Также заранее спасибо!

header.php

<?php echo $this->load_css("config"); ?>  
<?php echo $this->load_js("config"); ?> 

cms.php

function load_js($name){        
    // ...
    return header_script($name.".js");
    // ...
}
function load_css($name){       
    // ...
    return header_link($name.".css");
    // ...
} 

system.php

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";
    }
}

1 Ответ

2 голосов
/ 26 июня 2010

Во-первых, application/javascript не распознается некоторыми браузерами. Вы должны изменить это на text/javascript

Во-вторых, как упоминалось в комментариях (Джастин Джонсон), вы должны использовать параметры в определении вашей функции со значениями по умолчанию:

function header_script($name = '')
{
    if ($name != '') {
        return '<script type="text/javascript" src="'.$name.'"</script>';
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...