最近、会社は外部ネットワークを一時的に切断し、自社のサイトのみをすべて開いてアクセスできるようにしました。正直、WEB 開発を行うときにネットワークを切断するのは本当に唖然とします... 情報を見つける必要があるため、使用する PHP サーバー プロキシ ページを作成するだけで済みました。 シンプルなフレームページ: 以下为引用的内容: <br> *{margin:0;padding:0;}<br> html,body{overflow:hidden;}<br> td{padding:0;vertical-align:top;}<br> <br> window.onload = function(){<br> document.getElementById('targeturl').focus();<br> };<br> 以下は引用内容です: <br> *{マージン:0;パディング:0;}<br> html,body{overflow:hidden;}<br> td{padding:0;vertical-align:top;}<br> </スタイル><br> <表の幅="100%" 高さ="100%" セルスペース="0" セルパディング="0" ボーダー="0"><br> <tr><br> <td style="height:25px;background:#d4d0c8;padding:5px 10px;"><br> <form method="post" action="action_get.php" target="actioncontent" style="margin:0;padding:0;"><br> <input type="text" id="targeturl" name="targeturl" style="width:100%;border:1px inset;margin:0;" /> </フォーム><br> </td><br> </tr><br> <tr><br> <td> <br> <iframe name="actioncontent" style="width:100%;height:100%;"></iframe><br> </td><br> </tr><br> </テーブル><br> <スクリプトタイプ="text/javascript"><br> window.onload = function(){<br> document.getElementById('targeturl').focus();<br> };<br> </script> </td> テーブル> <p>PHP プロキシ ページ: </p> <p> </p> <table cellspacing="0" cellpadding="6" width="95%" align="center" border="0" style="border-right: #0099cc 1px solid; table-layout: fixed; border-top: #0099cc 1px solid; border-left: #0099cc 1px solid; border-bottom: #0099cc 1px solid"> <tbody> <tr> <td bgcolor="#ddedfb" style="word-wrap: break-word"> <p><font color="#ff0000">以下は引用内容です: </font></p> <p><?php<br/> //スヌーピーのページ取得機能を使用する<br/> include "Snoopy.class.php";<br/> //ターゲットURL<br/> $url = $_REQUEST['targeturl'];<br/> //渡されたパラメータをすべてリストします<br/> $par = array();<br/> $GetPost = array_merge($_POST,$_GET);<br/> foreach($GetPost As $Key=>$Value){<br> if($Key!='targeturl'){<br> $Value = str_replace("%25","%",$Value);<br> array_push($par,($Key . "= . $Value));<br> }<br> }<br> //ターゲット URL に含まれるかどうか (つまり、パラメータがあるかどうか) <br> $cc = strpos($url,"?") ? "&" : "?";<br> //URLを再構成<br> $geturl = !$par ? $url : $url.$cc.implode("&",$par);<br> //再編成された URL ページのコンテンツを取得します <br> $snoopy = 新しいスヌーピー;<br> $snoopy->fetch($geturl);<br> //親ウィンドウのアドレスを置き換える可能性のある、ターゲット コンテンツ内のスクリプト内のコードを置き換えます<br> $org = str_replace("top.location","top.title",$snoopy->results);<br> //ターゲットコンテンツのエンコーディングを UTF-8 に変換してみます<br> $opt = iconv("gbk","utf-8",$org);<br> //ターゲットコンテンツのエンコーディングが GBK か UTF-8 かを決定します<br> $ec = strlen($opt)?"gbk":"utf-8";</p> <p>?><br> <スクリプトタイプ="text/javascript"><br> // 閉鎖行程、次面コンテンツ中の表示矛盾を回避<br> (関数(){<br> var easyUTF8 = function(gbk){if(!gbk){return '';}var utf8 = [];for(var i=0;i<gbk.length s_str="gbk.charAt(i)" s_char="gbk.charCodeAt(i);var" b_char="s_char.toString(2)" c_char="(b_char.length==15)?[0].concat(b_char):b_char;var" a_b="[];a_b[0]" n="0;n<a_b.length;n++){utf8.push('%'+parseInt(a_b[n],2).toString(16).toUpperCase(" utf8.join></gbk.length> var getArgs = function(surl){var sarg = surl.split('?'),rv={};rv.filename=sarg[0];if(!sarg[1]){return rv;}var aarg= sarg[1].split('&'),atmp=[];for(var i=0;i<aarg.length rv></aarg.length> var createIPH = function(name,value){if(!name){return;}if(/msie/i.test(navigator.appVersion)){return document.createElement('<input type="hidden" name= "'+name+'" value="'+value+'"/>');}else{var dfi = document.createElement('input');dfi.type = 'hidden';dfi.name = name;dfi .value = 値;dfi を返す;}};<br> //回显目标URLへ父窗口文本框<br> var dtu = top.document.getElementById('targeturl');<br> if(dtu){dtu.value = '<?php echo $geturl;?>';}<br> //目标URL及びドメイン<br> var sref = '<?php echo $url;?>';<br> var sdomain = sref.match(/^http://[^/]*/i)[0];<br> //页面追加後実行下面の手順<br> var process = function(){<br> //抓取页面中すべて链接<br> var dlink = document.getElementsByTagName('a'),la = dlink.length;<br> //抓取页面中すべて表单<br> var dform = document.getElementsByTagName('form'),lf = dform.length;<br> //すべての链接に渡り、代替卢它们のhref地址<br> for(var i=0;i<la></la> var src = dlink[i].href.toString().replace(/^http://www.w3cgroup.com(?:/geturl)?/i,sdomain);<br> var oargs = getArgs(src),ahref = [];<br> //UTF-8 符号パラメータ值<br> for(var d in oargs){<br> if(!dd=='ファイル名'!oargs[d]){続行;}<br> ahref.push(d+'='+encodeURIComponent(easyUTF8(oargs[d])));<br> }<br> var ghref = ahref.length?oargs.filename+'?'+ahref.join('&'):oargs.filename;<br> // 重设链接地址<br> dlink[i].href = 'http://www.w3cgroup.com/geturl/action_get.php?targeturl='+ghref;<br> }<br> //すべての表单、置換卢它们のアクション地址<br> for(i=0;i<lf></lf> //抓取表单アクション并处処理<br> var src = dform[i].action.toString().replace(/^http://www.w3cgroup.com(?:/geturl)?/i,sdomain);<br> if(!(/^http/.test(src))){src = (/^/.*$/.test(src))?(sdomain+src):(sdomain+'/'+src);}<br> // 一つのドメインターゲット URL を作成します。上面処理の src 地址<br> です。 var dfi = createIPH('targeturl',src);<br> dform[i].appendChild(dfi);<br> // 一つのドメインを作成し、utf-8 に、属性はインデックスを使用します<br> var dfi2 = createIPH('ie','utf-8');<br> dform[i].appendChild(dfi2);<br> // 重设表单提交目标窗口<br> dform[i].target = 'アクションコンテンツ';<br> // 重设表单アクション地址<br> dform[i].action = 'http://www.w3cgroup.com/geturl/action_get.php';<br> // 送信イベントの重設定表、用来 UTF8 文字字句<br> dform[i].onsubmit = function(){<br> var dlms = this.elements,l = dlms.length-1,pn = '',pt = '',pv = '';<br> for(var i=0;i<l></l> pn = dlms[i].name,pt = dlms[i].type,pv = dlms[i].value;<br> if(!pnpn=='targeturl'pn=='ie'){Continue;}<br> if(pt=='送信'pt=='リセット'pt=='ボタン'){<br> dlms[i].value = encodeURIComponent(pv);<br> }その他{<br> dlms[i].value = encodeURIComponent(easyUTF8(pv));<br> }<br> }<br> };<br> }<br> };<br> //window.onload を決定します<br>if(document.attachEvent){window.attachEvent('onload',process);}else{window.addEventListener('load',process,false);}<br> })();<br> </script><br> // スクリプトは、実行したい内容が無駄になる可能性のあるコンテンツ内のスクリプト エラーを避けるために、出力コンテンツの前に配置されます <br> //キャプチャされたターゲットページのコンテンツを出力します<br> <?php echo ($ec=="gbk")?$opt:$org;?></p> </td> </tr> </tbody> </table> <p>この小さな作業では、JavaScript スクリプトで GBK エンコードされたコンテンツを UTF-8 エンコードに簡単に変換できる重要な JavaScript 関数 easyUTF8 を作成しました。 </p> <p>フォームに項目を追加する際の互換性の問題にも対処しました。IE で作成されたフォーム項目の内容は、名前と値を指定すると予期しない結果になる可能性があることに注意してください。これは DHTML マニュアルに記載されています。それについてはすでに説明しました。 </p> <p style="width:100%;text-align:center;margin:10px 0"> <br> <br> </p> <p style="width:100%;text-align:center;margin:10px 0"> </p> <p class="clear"></p> </table>