从iframe获取URL,然后onclick修改地址



我正在尝试找到一种从iframe获取URL并使用JavaScript修改链接并移动到另一个页面的方法。基本上,iframe中的地址是" http://www.somthing.com/12/somt/arr_1.htm",使用JavaScript我想删除最后五个字符(留下此http://www。soming.com/12/somt/arr_"),比向其添加下一个逻辑号码(使链接" http://www.somthing.com/12/somt/arr_ar_2.htm")。

到目前为止,我有这样的东西。

    <script language="javascript" type="text/javascript">
    function urlGen(f){
                       var i1 = document.getElementById("iframe_id").contentWindow.location.href;
                       var i2 = "1.htm";
                       var i3 = "2.htm";
                       var newURL = i1 - i2 + i3
                       f.action = i1 - i2 + i3
                       return i1 - i2 + i3;
                       }
</script>

因此,根据我所说的内容,它应该看起来像这样吗?所以看起来像这样吗?(请记住,我是JavaScript的森林混蛋..."我不是一个聪明的人,但我知道Java是什么")

    <script language="javascript" type="text/javascript">
    function urlGen(f){
                       var i1 = document.getElementById("iframe_id").contentWindow.location.href = newURL;
                       newURL = il.slice(0, -5);
                       var i3 = "2.htm";
                       f.action = newURL + i3
                       }
</script>

尝试使用此正则表达式匹配

var i1 = "http://www.somthing.com/12/somt/arr_41.htm";
s = i1.replace(/d+.htm$/, function(attr) {
  return attr.replace(/d+/, function(val) {
    return parseInt(val,10) + 1;
  });
});
alert(s);

这将更改与x.htm(其中x是数字)结尾的任何字符串,同一字符串代替X 1(从https://stackoverflow.com/a/a/1742841进行了改编)。<<<<<<<<<<<<<<<<<<<<<<<<<<

您正确地抓住了URL,但是您的字符串操纵无法正常工作。

您具有修剪字符串的特殊功能:

 newUrl = i1.slice(0, -5);

这将修剪URL的最后5个字符。

 newUrl = newUrl + i3;

这将与新的URL与新的URL限制。

 return newUrl;

现在这样做:

 document.getElementById("iframe_id").contentWindow.location.href = newUrl;

它将使用新的URL。


有工作示例:

此示例还包含了数字添加:

 i1.substr(0,i1.lastIndexOf("_")+1);

此位使用字符串函数substr。它用于检索字符串的一部分。第一个参数是开始位置,而第二个参数标记为末端。我使用字符串函数lastIndexOf查找URL中最后使用的下划线的位置,然后添加一个函数以确保其包含下划线。上面的代码线将打印:

http://stacksnippets.net/arr_

要构建新的URL,我们现在需要该数字。parseInt在这里为您提供帮助:

(parseInt(i1.substr(i1.lastIndexOf("_")+1), 10)+1)

我将整个零件放在括号之间,因此将其作为总和。parseInt的第一个参数是包含数字(1.htm)的字符串。我们通过使用substr再次选择。现在,起始位置是下划线 1。省略了最后一个参数,因为我们可以直到字符串的末端。parseInt将将1.htm分解为1。第二个参数用于迫使该函数使用小数系统。(radix 10)。总和的最后一部分将一个添加到数字中。该代码的结果将是2

将它们一起添加在一起将为我们提供:

http://stacksnippets.net/arr_2.htm

function urlGen(f) {
      var i1 = "http://stacksnippets.net/arr_1.htm"; //cannot grab the url because of same origin policy
      //var i1 = document.getElementById("iframe_id").contentWindow.location.href; //
      var newURL = i1.substr(0,i1.lastIndexOf("_")+1) + (parseInt(i1.substr(i1.lastIndexOf("_")+1), 10)+1) + ".htm";
      f.action = newURL;
      return newURL;
    }
     //NOT PART OF THE SOLUTION:
    document.body.onload = function() {
      document.body.innerHTML += "Document initial url: http://stacksnippets.net/arr_1.htm";
      var url = urlGen(new Object); //dummy object
       document.body.innerHTML += "<br />Changed url: " + url;
    }

最新更新