PDA

View Full Version : تغییر url صفحه مرورگر بدون اینکه آن url را بازکند.



olampiad
سه شنبه 11 فروردین 1394, 14:04 عصر
من این سوال رو تو انجمن js هم پرسیدم
از این بابت عذر میخوام.

من میخوام url صفحه تغییر کنه ولی به اون url نره.
منظورم اینه که مثلا با زدن یک دکمه،آدرس url مرورگر تغییر کنه ولی دیگه به آدرس تغییر کرده نره و همون تو صفحه قیلی بمونه.
امیدوارم منظورمو متوجه شده باشین.
من این تکه کد هارو از اینترنت در آوردم.
ولی این توابع وقتی که url رو تغییر میدن به url تغییر یافته میرن.
من میخوام url رو تغییر بده ولی به url تغییر یافته نره.


1
2
3
window.location.replace('http://www.w3schools.com');
//window.location.assign("http://www.w3schools.com")






مرسی
ممنون

prans.info
سه شنبه 11 فروردین 1394, 14:33 عصر
بخاطر مسائل امنیتی احتمالا نشدنی هست .
اگه بشه اینکار رو انجام داد میشه یک فیک پیج ساخت که آدرسش هم دقیقا مثل سایت اصلی باشه . :لبخند:

2undercover
سه شنبه 11 فروردین 1394, 14:41 عصر
با استفاده از History API توی Javascript می تونید این کار رو انجام بدید: http://html5doctor.com/history-api/

2undercover
سه شنبه 11 فروردین 1394, 14:46 عصر
بخاطر مسائل امنیتی احتمالا نشدنی هست .
اگه بشه اینکار رو انجام داد میشه یک فیک پیج ساخت که آدرسش هم دقیقا مثل سایت اصلی باشه . :لبخند:

با استفاده از History API شما نمی تونید با آدرس جدیدی از یک سایت دیگه کار بکنید. دقیقا مثل درخواست های AJAX که باید از یک Origin باشند. یعنی فرضا الان ما توی صفحه http://origin.com باشیم نمی تونیم آدرس http://fakepage.com رو به History مرورگر اضافه کنیم و آدرس صفحه رو تغییر بدیم. (حتی www ابتدای آدرس ها هم مهم هست و پروتکل هم مهم هست.)

sajad dp
سه شنبه 11 فروردین 1394, 15:51 عصر
برای ajax سازی اسکریپت ها همین نیاز رو داشتم بعد از کلی جستجو کردن و مطلب خوندن به این قطع کد رسیدم:

<script>
$(function(){
$("a[rel='tab']").click(function(e){
pageurl = $(this).attr('href');
//$.ajax({url:pageurl+'?rel=tab',success: function(ata){$('#content').html(data);}});
if(pageurl!=window.location){
window.history.pushState({path:pageurl},'',pageurl );
}
return false;
});
});
</script>

<a id="iddelkhah" rel="tab" href="http://localhost/test/2.php" title="s" >click konid!</a>



حتما قبل از این کد جی کوئری رو فراخوانی کنید.
همون طور ک وسط تابع مشخص هست بابرداشتن کامنتدیتایی رو می تونید بعد از اعمال در یک تگ با آی دی content نمایش بدید.
( البته موضوع تاپیک بیشتر مربوط به جاوا و جی کوئری هست تا php )