PDA

View Full Version : آدرس دهی صحیح در زمان استفاده از ajax



rash44
چهارشنبه 02 اردیبهشت 1394, 15:25 عصر
سلام
یک لینک به این صورت دارم


<a href="#" onclick="ajax_loadContent('view','page.php');">test</a>

در زمان استفاده از httaccsess که میخوام آدرس ها را بصورت کامل بنویسم ، به صورت زیر :


<a href="#" onclick="ajax_loadContent('view','http://domain.com/folder/page.php');">test</a>


سیستم مشکل پیدا میکنه و ajax نمیتونه فایل مورد نظر رو لود کنه

rash44
چهارشنبه 02 اردیبهشت 1394, 19:00 عصر
لطفا راهنمائی کنید
ممنون

rash44
پنج شنبه 03 اردیبهشت 1394, 09:18 صبح
لطفا راهنمائی کنید

j_naroogha@yahoo.com
پنج شنبه 03 اردیبهشت 1394, 13:32 عصر
اگر امکانش هست بدنه تابع ajax_loadContent تون رو بذارین تا بهتر بشه کمک کرد.
ولی خب توی ajax میشه هم نسبی و هم مطلق آدرس دهی کرد.

j_naroogha@yahoo.com
پنج شنبه 03 اردیبهشت 1394, 13:34 عصر
http://stackoverflow.com/questions/24627075/jquery-ajax-url-path-issue

rash44
پنج شنبه 03 اردیبهشت 1394, 16:03 عصر
اگر امکانش هست بدنه تابع ajax_loadContent تون رو بذارین تا بهتر بشه کمک کرد.
ولی خب توی ajax میشه هم نسبی و هم مطلق آدرس دهی کرد.


var enableCache = true;
var jsCache = new Array();

var dynamicContent_ajaxObjects = new Array();

function ajax_showContent(divId,ajaxIndex,url,callbackOnCom plete)
{
var targetObj = document.getElementById(divId);
targetObj.innerHTML = dynamicContent_ajaxObjects[ajaxIndex].response;
if(enableCache){
jsCache[url] = dynamicContent_ajaxObjects[ajaxIndex].response;
}
dynamicContent_ajaxObjects[ajaxIndex] = false;

ajax_parseJs(targetObj);

if(callbackOnComplete) {
executeCallback(callbackOnComplete);
}
}

function executeCallback(callbackString) {
if(callbackString.indexOf('(')==-1) {
callbackString = callbackString + '()';
}
try{
eval(callbackString);
}catch(e){

}


}

function ajax_loadContent(divId,url,callbackOnComplete)
{
if(enableCache && jsCache[url]){
document.getElementById(divId).innerHTML = jsCache[url];
ajax_parseJs(document.getElementById(divId))
evaluateCss(document.getElementById(divId))
if(callbackOnComplete) {
executeCallback(callbackOnComplete);
}
return;
}

var ajaxIndex = dynamicContent_ajaxObjects.length;
document.getElementById(divId).innerHTML = '<img src="img/loading.gif" width="35" height="35" align="absmiddle" /> لطفا صبر کنید ';
dynamicContent_ajaxObjects[ajaxIndex] = new sack();

if(url.indexOf('?')>=0){
dynamicContent_ajaxObjects[ajaxIndex].method='GET';
var string = url.substring(url.indexOf('?'));
url = url.replace(string,'');
string = string.replace('?','');
var items = string.split(/&/g);
for(var no=0;no<items.length;no++){
var tokens = items[no].split('=');
if(tokens.length==2){
dynamicContent_ajaxObjects[ajaxIndex].setVar(tokens[0],tokens[1]);
}
}
url = url.replace(string,'');
}


dynamicContent_ajaxObjects[ajaxIndex].requestFile = url;
dynamicContent_ajaxObjects[ajaxIndex].onCompletion = function(){ ajax_showContent(divId,ajaxIndex,url,callbackOnCom plete); };
dynamicContent_ajaxObjects[ajaxIndex].runAJAX();


}

function ajax_parseJs(obj)
{
var scriptTags = obj.getElementsByTagName('SCRIPT');
var string = '';
var jsCode = '';
for(var no=0;no<scriptTags.length;no++){
if(scriptTags[no].src){
var head = document.getElementsByTagName("head")[0];
var scriptObj = document.createElement("script");

scriptObj.setAttribute("type", "text/javascript");
scriptObj.setAttribute("src", scriptTags[no].src);
}else{
if(navigator.userAgent.toLowerCase().indexOf('oper a')>=0){
jsCode = jsCode + scriptTags[no].text + '\n';
}
else
jsCode = jsCode + scriptTags[no].innerHTML;
}

}

if(jsCode)ajax_installScript(jsCode);
}


function ajax_installScript(script)
{
if (!script)
return;
if (window.execScript){
window.execScript(script)
}else if(window.jQuery && jQuery.browser.safari){
window.setTimeout(script,0);
}else{
window.setTimeout( script, 0 );
}
}


function evaluateCss(obj)
{
var cssTags = obj.getElementsByTagName('STYLE');
var head = document.getElementsByTagName('HEAD')[0];
for(var no=0;no<cssTags.length;no++){
head.appendChild(cssTags[no]);
}
}