0

Code Igniter でアプリケーションを作成しました。

<!DOCTYPE HTML>index.php (Code Igniter によって提供されるルート ディレクトリ内のファイル) の最初で を宣言しない限り、Internet Explorer は強制的に quirks モードになり、ページが完全に台無しになります。私は自分の見解の最初に運がないことを入れようとしました。

これは通常は問題になりませんが、コントローラーの 1 つが、ビューで JSON 応答を返すモバイル認証システムを強化し、<!DOCTYPE HTML>応答を妨げます。

では、ビューの上部に配置すると、doc 型宣言が無視されるのはなぜですか? また、index.php の先頭に配置すると機能するのはなぜですか?

さらに重要なことに、どうすればこれを回避できますか?

助けてくれてありがとう!

編集:

これは、ビューをロードするコントローラー メソッドの例です。

public function login()
    {
        ?><script type="text/javascript">console.log("Admin log in panel loaded");</script><?php

        //This method will have the credentials validation
        $this->load->library('form_validation');
        $this->form_validation->set_rules('email', 'Email', 'trim|required|xss_clean');
        $this->form_validation->set_rules('password', 'Password', 'trim|required|xss_clean|callback_checkDatabase');//Database gets queried with a call-back here.

        //Set custom validation messages:
        $this->form_validation->set_message('checkDatabase', 'Invalid credentials');

        //This is executed when the form is submitted
        if($this->form_validation->run() == FALSE)
        {
            //Field validation failed. User remains on login page.
            $this->load->view('header');
            $this->load->view('useradminviews/login');
            $this->load->view('footer');

        } else {
            //Login successful, redirect to admin dashboard
            ?><script type="text/javascript">console.log("User logged in successfully");</script><?php
            redirect('useradmin?login', 'refresh');
        }
    }

これはheader.phpです:

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>COFRA</title>
<link rel="icon" type="image/png" href="<?php echo base_url();?>/images/favicon.png" />
<script type="text/javascript" src="<?php echo base_url();?>/javascript/jquery.js"></script>

<?php

//Load different CSS for IE users:
if ($this->agent->is_browser('Internet Explorer'))
{
    ?>
        <link href="<?php echo base_url();?>/javascript/placeholder/css/style.css" rel="stylesheet" type="text/css" media="screen"/>
        <link href="<?php echo base_url();?>/css/COFRAIE.css" rel="stylesheet" type="text/css" media="screen"/>
        <script type="text/javascript" src="<?php echo base_url();?>/javascript/placeholder/js/jquery.placeholder.js"></script>
    <?php

} else {
    ?><link href="<?php echo base_url();?>/css/COFRA.css" rel="stylesheet" type="text/css" media="screen"/><?php
}
?>


</head>
4

1 に答える 1

4

コンソールへの JavaScript の出力を削除します。ビューの前に実行しないでください。

于 2012-05-11T09:21:54.217 に答える