0

ユーザーフローインターフェイスのようなTwitterを実装したい、つまり、ユーザーが http://twitter.com/#!/abcページに移動するとロードされます。私はこれを実装しようとしました:

http://forum.abhibhatia.co.cc/ajax/

私がやろうとしているのは、ページが読み込まれるとすぐに、URL が「#!/」で分割され、2 番目の部分が読み込まれるのでhttp://forum.abhibhatia.co.cc/ajax/posts.phphttp://forum.abhibhatia.co.cc/ajax/#!/posts.php. 私が直面している問題は、ページを使用してユーザーをリダイレクトした後、ページが変更されwindow.location ないことです。ユーザーをリダイレクトする他の方法はまだ試していません。使用されるJavaScript関数は次のとおりです。

function geturl(){
    var url=window.location.toString();
    var a=url.split("#!/");
    if(a.length==1)
        a[1]='data.php';
    return a[1];
    }
function fetchPage(){
    var url=geturl();
    var xmlhttp;
    if (url.length==0&&m==1)
      { url='data.php';
      return;
      }
    if (window.XMLHttpRequest)
      {// code for IE7+, Firefox, Chrome, Opera, Safari
      xmlhttp=new XMLHttpRequest();
      }
    else
      {// code for IE6, IE5
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
    xmlhttp.onreadystatechange=function()
      {
      if (xmlhttp.readyState==1) document.getElementById("data").innerHTML="Loading...";
      if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
        var file=xmlhttp.responseText;//alert(file);
        var contents=file.split("<head>");//alert(contents[0]);
        var useable=contents[1].split("</head>");
        var head=useable[useable.length-2];//alert(head);
        var body=useable[useable.length-1].split("</body>");
        document.getElementById("data").innerHTML=body[0];
        document.head.innerHTML=document.head.innerHTML+head;
        //document.getElementById("data").innerHTML=xmlhttp.responseText;
        }
      }
    xmlhttp.open("GET",url,true);
    xmlhttp.send();
}
fetchPage();
4

1 に答える 1

0

window.location.hash を使用できるオブジェクトをよく見てwindow.locationください。ただし、前に述べたように、ハッシュバングは最近では少し古いため、フォールバックとして標準ハッシュを使用した html5 状態管理を使用する傾向が強くなります。

さらに読む:

https://developer.mozilla.org/en/DOM/window.location

http://www.adequatelygood.com/2010/7/Saner-HTML5-History-Management

Twitter スタイルのインターフェイスを本当に作成したい場合は、backbone.js のようなフレームワークにアプリ全体を配置する必要があります。これは、REST/CRUD スタイルのデータ ソースを使用するだけでよいことを意味します。すべての状態管理とハッシュ フォールバックを実装します。

于 2012-05-17T20:52:08.817 に答える