jquery .each()函数在浏览器上生效"返回"仅限按钮

时间:2017-08-14 21:19:43

标签: javascript jquery html

我目前有一个网页,我使用.load()从另一个页面加载div。在我加载之后,我运行一些jquery代码,将特定的URL附加到所有现有的href。问题是我第一次点击超链接/ href我被重定向到旧的href。但是在我点击"然后返回"我的浏览器上的按钮,我尝试相同的超链接/ href,href工作,并带我到新的附加href。

我想知道在我第一次加载页面时是否有更改我的所有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>

3rd 我在导入的容器中为所有href添加了一个url。

<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>

提前谢谢。

1 个答案:

答案 0 :(得分:0)

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

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

我宁愿通过加载完成回调来更新URL:

$('#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
    });
});