2017-08-14 27 views
0

我目前有一个网页,我正在使用.load()从另一个页面加载div。在完成加载后,我运行一些jQuery代码将特定的url附加到所有现有的hrefs。问题是,我第一次点击一个超链接/ href我被重定向到旧的href。但是当我点击浏览器上的“返回”按钮后,我尝试使用相同的超链接/ href,href工作并将我带入新增的href。jquery .each()函数只对浏览器“回去”按钮有效

我想看看是否有反正当我第一次加载页面时,我所有的hrefs都会改变。

这里是我的代码:

我初始化,我会从第二页容器装载到容器中。

<pre> 
    <code id="iframe-fragment"></code> 
</pre> 

第二我第二页的容器加载到我目前的网页。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.0/jquery.min.js"></script> 
<link href="https://roboticsys.com/support/plugins/servlet/docs/c1001-d1003/RapidCode/rsi_stylesheet.css" rel="stylesheet" type="text/css"> 
<script> 
    $('#iframe-fragment').load('https://roboticsys.com/support/plugins/servlet/docs/c1001-d1003/RapidCode/_absolute_motion_8cs-example.html div.fragment'); 
</script> 

我的URL追加到在导入容器中的所有的HREFs。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.0/jquery.min.js"></script> 
<script> 
    $(document).ready(function() { 
    $("a").each(function() { 
     var $this = $(this);  
     var _href = $this.attr("href"); 
     $this.attr("href", 'https://appended-url.com/' + _href); 
    }); 
    }); 
</script> 

在此先感谢您。

回答

0

似乎您的load()内容正在被浏览器缓存,并且一旦您点击后退按钮,就会在页面上显示内容。

然而在此之前,在初始页面加载时,您的文档已完成,并运行您的每个文件,但加载不完整。在这种情况下,你的内容不会被更新。

我宁愿通过负载complete回调来更新网址:

$('#div').load('http://myurl', function(res, status, xhr){ 
    //You can use the parameters for any sort of conditionals 
    $('a').each(function(){ 
     //your code to edit the URLs 
    }); 
}); 
+0

完美!有效!感谢您抽出时间。 –