1. 問題分析
図に示すように、バックエンド システムについては、誰もがレイアウト構造を知っており、ヘッダー、サイドバー、フッターを分離する必要があります。中間部分のコンテンツは動的に変更する必要があります。つまり、異なるメニューに従って異なるページが配置されますが、全体的なレイアウトは変わりません
このレイアウト構造には、純粋な HTML のコンテンツのさまざまな部分を埋め込む機能はありません。この種の問題を見つけたり解決するには、jquery の優れた互換性と幅広い用途により、ここでは
jquery のロード メソッドを使用して、このページ レイアウト
フレームワークを処理します。 2.loadメソッドの詳しい説明1.定义 $().load(,,);
dataパラメータは、リクエストとともに送信されるクエリ文字列のキーと値のペアのセットを指定します。
オプションのcallbackパラメータは、load()メソッドの完了後に実行される関数の名前です。
2. 例URLパラメータにjQueryセレクターを追加することもできます。
要素にロードします。
$("#p1").load("demo_test.txt #p1");
コールバック関数
はメソッドの完了後に許可されます。コールバック関数は別の関数に設定できます$("#p1").load("demo_test.txt",function(responseTxt,statusTxt,xhr){ if(statusTxt=="success") alert("外部内容加载成功!"); if(statusTxt=="error") alert("Error: "+xhr.status+": "+xhr.statusText); });
1. 問題
JavaScript
コードが無効です。 これは、load によってロードされた外部ファイルが Script 部分を削除するため、ロードされたページでページの JavaScript が呼び出されるとき、xxxfunction が未定義になります。 。 2. 解決策 静的 HTML コードのみを含むヘッダー、サイドバー、フッターの場合は、load を使用して直接読み込みます<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title></title> <!-- Tell the browser to be responsive to screen width --> <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport"> <!-- Bootstrap 3.3.6 --> <link rel="stylesheet" href="../resources/bootstrap/css/bootstrap.min.css"> </head> <body class="hold-transition skin-blue-light sidebar-mini" onload="onload();"> <p class="wrapper"> <p id="header"> </p> <!-- Left side column. contains the logo and sidebar --> <p id="sidebar"> </p> <!-- Content Wrapper. Contains page content --> <p id="content" class="content-wrapper clearfix"> <!-- Content Header (Page header) --> </p> <!-- /.content-wrapper --> <p id="footer"> </p> <!-- Add the sidebar's background. This p must be placed immediately after the control sidebar --> <p class="control-sidebar-bg"></p> </p> <!-- ./wrapper --> <!-- jQuery 2.2.3 --> <script src="../resources/plugins/jQuery/jquery-2.2.3.min.js"></script> <!-- Bootstrap 3.3.6 --> <script src="../resources/bootstrap/js/bootstrap.min.js"></script> <!--左侧菜单--> <script src="../resources/dist/js/common/global.js"></script> <script src="../resources/dist/js/menu/menuTemplate.js"></script> <script src="../resources/dist/js/menu/menu.js"></script> </body> <script> //加载页面布局的header,sidebar,footer的内容 $("#header").load("inc/header.html"); $("#sidebar").load("inc/sidebar.html"); $("#footer").load("inc/footer.html"); /* *加载变换内容,主要url参数为dom对象,并且该dom中的url放在href中, *调用方式如:<span onclick="javascript:load(this);" href="/backstage/website/test.html">测试</span> *注意:1.该dom对象最好不要用a标签,因为点击a标签会进入href指定的页面 * 2.要加载的内容要用 id="content" 标注,因为load中指明了加载页面中指定的id为content下的内容 * 3.对应页面的JavaScript写在content下 */ function load(url, data){ //alert($(url).attr("href")); $.ajaxSetup({cache: false }); $("#content").load($(url).attr("href")+ " #content ", data, function(result){ //alert(result); //将被加载页的JavaScript加载到本页执行 $result = $(result); $result.find("script").appendTo('#content'); }); }</script> </html>
ロードされたページ:
<p id="content"> <p>测试二</p> <span onclick="javascript:load(this);" href="/backstage/website/test.html">测试</span> <a href="javascript:test();">测试</a> <script> function test(){ alert("测试二页面"); } </script> <script> function test2(){ alert("ceshi"); } </script> </p>
効果のスクリーンショット:
以上がjqueryのloadメソッドを使用して動的読み込みを設計し、読み込まれたページでのJavaScriptエラーの問題を解決します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。