PDA

View Full Version : load نشدن صفحه با Ajax در CD



saeid taheri
چهارشنبه 17 بهمن 1386, 08:14 صبح
سلام , راستش من در مورد مشکلم جستجو کردم ولی به جواب نرسیدم
من می خواهم یک صفحه html رو توی یک صفحه دیگه لود کنم این کار بصورت لوکال اجرا می شه یعنی زمانی که من به این صورت http://localhost/new/test.htm اجرا می کنم صفحه لود می شه ولی زمانی که من این فایل html رو در داخل یک cd رایت می کنم و اجرا می کنم صفحه html لود نمی شه




<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<link rel="stylesheet" type="text/css" href="style.css" />
<script type="text/javascript" >
var XMLHttpRequestObject = false ;
if(window.XMLHttpRequest){
XMLHttpRequestObject = new XMLHttpRequest();
} else if (window.ActiveXObject){
XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
}

function GetData(datasource , divID)
{
if(XMLHttpRequestObject){
var obj = document.getElementById(divID);
obj.innerHTML = "<img alt=''src='images/loading.gif' /> چند لحظه صبر کنید ...";
XMLHttpRequestObject.open("GET",datasource);
XMLHttpRequestObject.onreadystatechange = function()
{ if(XMLHttpRequestObject.readyState == 4 &&
XMLHttpRequestObject.status == 200) {
obj.innerHTML = XMLHttpRequestObject.responseText;
}
}
XMLHttpRequestObject.send(null);
}
}

</script>


</head>
<body>
<div id="testDiv"></div>
<a href="javascript:GetData('index.htm','testDiv');">test</a>
</body>

oxygenws
چهارشنبه 17 بهمن 1386, 12:57 عصر
۱- تو مرورگر های محتلف چک کن.
۲- آدرس GetData رو کامل بده، ببین باز هم جواب نمیده.

raravaice
چهارشنبه 17 بهمن 1386, 13:05 عصر
جناب saeid taheri (http://barnamenevis.org/forum/member.php?u=5221) این کار غیر عملی چرا؟

چون خاصیت Ajax اینه که توی یه حوزه دامین مشخص فعالیت میکنه مثلا شما در نظر بگیر سایت شما http://www.your.com و در خواست ajax شما به یه url دیگست. "کار نمیکنه". با این تفاسیر شما از روی cd نمیتونی توقع داشته باشی که درخواست ajax به درستی عمل کنه.

oxygenws
چهارشنبه 17 بهمن 1386, 13:12 عصر
چون خاصیت Ajax اینه که توی یه حوزه دامین مشخص فعالیت میکنه مثلا شما در نظر بگیر سایت شما http://www.your.com (http://www.your.com/) و در خواست ajax شما به یه url دیگست.
اینطوری آدرس بده، اصولا باید کار کنه (اما توی ویندوز فکر کنم نشه آدرس دهی ثابتی برای cdrom داشت)
file:///media/cdrom/dfjdhfj.html
file://c:/httpdocs/wwwroot/dkfjndkjfd.html

saeid taheri
چهارشنبه 17 بهمن 1386, 13:14 عصر
جناب raravaice ولی بعضی از فایلها این کار رو روی cd هم انجام می دهند مانند فایل ضمیمه

raravaice
چهارشنبه 17 بهمن 1386, 13:38 عصر
آها من فکر کردم درخواست از روی cd میخواد به localhost بره
پس با این تفاسیر این روند معقوله.
زیباست .به rel توی تگ <a> دقت کن و همین ترفند رو ادامه بده.




اینطوری آدرس بده، اصولا باید کار کنه (اما توی ویندوز فکر کنم نشه آدرس دهی ثابتی برای cdrom داشت)
file:///media/cdrom/dfjdhfj.html
file://c:/httpdocs/wwwroot/dkfjndkjfd.html
نه کار نمیکنه هر کدوم از پروتکل هارو که بزاری قبل از url فکر میکنه درخواست میخواد بره جای دیگه و جلوتو میگیره فقط اسم صفحه کار سازه یهنی فقط باید مسیر کوتارو بدون نام دامین بدی البته من با http کار کردم و این نتیجه رو دیدم file رو نمی دونم

saeid taheri
چهارشنبه 17 بهمن 1386, 23:56 عصر
من نتونستم به جواب برسم

saeid taheri
پنج شنبه 18 بهمن 1386, 21:17 عصر
من با این کد تونستم مشکلمو حل کنم امیدوارم بدرد بخوره




<script language="javascript">
var bustcachevar=1 //bust potential caching of external pages after initial request? (1=yes, 0=no)
var loadstatustext="<img src='images/loading.gif' /> لطفا کمی صبر کنید..."
function ajaxpage(url, containerid){
var page_request = false
if (window.XMLHttpRequest) // if Mozilla, Safari etc
page_request = new XMLHttpRequest()
else if (window.ActiveXObject){ // if IE
try {
page_request = new ActiveXObject("Msxml2.XMLHTTP")
}
catch (e){
try{
page_request = new ActiveXObject("Microsoft.XMLHTTP")
}
catch (e){}
}
}
else
return false
initbox();
document.getElementById(containerid).innerHTML=loa dstatustext
page_request.onreadystatechange=function(){
loadpage(page_request, containerid)
}
if (bustcachevar) //if bust caching of external page
bustcacheparameter=(url.indexOf("?")!=-1)? "&"+new Date().getTime() : "?"+new Date().getTime()
page_request.open('GET', url+bustcacheparameter, true)
page_request.send(null)
}

function loadpage(page_request, containerid){
if (page_request.readyState == 4 && (page_request.status==200 || window.location.href.indexOf("http")==-1))
document.getElementById(containerid).innerHTML=pag e_request.responseText
}

</script>

<a href="#" onclick="ajaxpage('test.htm','testDiv');">test</a>