如何将iFrame的部分URL更改为随机字符串

How to change part of an iFrame’s URL to a random string?

本文关键字:随机 字符串 URL iFrame      更新时间:2023-09-26

考虑这个简单的iFrame:

<iframe src="http://example.com/iframe/?user=123&name=test"
  width="200" height="200"></iframe>

我想要的是随机更改零件test

例如,更改此

src="http://example.com/iframe/?user=123&name=test"

类似的东西:

src="http://example.com/iframe/?user=123&name=yxcvb"

字符串应包含字母表中的随机字母,长度最多为10个字符,例如:

src="http://example.com/iframe/?user=123&name=qwertzuiop"

我相信这对您有用:JavaScript中的随机字母数字字符串?

只需生成一个随机字符串(介于1到10个字符之间),然后将其分配给iframe的name属性。

我为你准备了一把小提琴:http://jsfiddle.net/4agLwfe8/.

<iframe id="iframe" src="http://www.facebook.com?user=123&name=test" width="200" height="200">

这个解决方案假设您没有使用JQuery,因为您说无论如何都不确定如何做到这一点,所以它只是一个简单的JavaScript解决方案。

首先你有一个简单的iframe。我只是用脸书作为一个快速的例子。我还添加了一个ID。

然后我使用了以下JavaScript

function randomNumber(){
    return Math.floor(Math.random() * 10) + 1;  
}
function randomString(length, chars) {
    var result = '';
    for (var i = length; i > 0; --i) result += chars[Math.round(Math.random() * (chars.length - 1))];
    return result;
}
var chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
var iframe = document.getElementById("iframe");
var iframeSrc = iframe.src;
var newIframeSrc = iframe.src.substring(0,iframe.src.indexOf("name")) + "name=" + randomString(randomNumber(), chars);
iframe.src = newIframeSrc;

首先有两个功能。第一个生成一个介于1和10之间的随机数,这将是查询字符串中"name"参数的字符长度。第二个函数生成这个随机字符串,传递生成的随机数,以及您指定的可以使用的字符串(来自我链接到的初始解决方案)。

从那里,我只是根据我给它的ID来选择iframe,并获取它的来源。对于源代码,我只需将"name"参数及其值与子字符串一起剪切掉,然后将新的"name"变量及其值重新追加。最后,我将iframe的新源代码重新分配给iframe。事后看来,我意识到我本可以避免删掉"name=",然后再加上它,但我在早上6:30大脑还没有完全清醒的时候就开始看这个了。:)