我想實現類似於用戶流界面的twitter,即當用戶轉到 http://twitter.com/#!/abc
頁面被加載。 我試圖在實現這一點:像用戶流接口一樣實現twitter?
http://forum.abhibhatia.co.cc/ajax/
我嘗試做的是,一旦加載頁面,網址是由分裂「#/!」和塞康部分被加載,從而http://forum.abhibhatia.co.cc/ajax/posts.php
可以訪問在http://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();
作爲一個方面說明,hashbangs是壞的。 *壞壞壞*!嘗試並使用html5歷史記錄,[pjax](http://pjax.heroku.com/)應該指向正確的方向。 –
你能解釋我爲什麼嗎? –
http://www.quora.com/Are-hashbang-URLs-a-recommended-practice –