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

考虑一下这个简单的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/ 。

  

这个解决方案假设你没有使用JQuery,因为你说你不知道如何做到这一点,所以这是一个简单的JavaScript解决方案。

首先,你有一个简单的iframe。 我只是用facebook作为一个简单的例子。 我还为它添加了一个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; 

首先有2个function。 第一个生成1到10之间的随机数,这将是查询字符串中“name”参数的字符长度。 第二个函数生成此随机字符串,传入随机数而不是生成的字符串,以及您指定可以使用的字符串(从我链接到的初始解决方案)。

从那里,我只是通过我给它的ID选择iframe并抓住它的来源。 使用源代码,我只是简单地删除“name”参数及其子字符串的值,然后附加新的“name”参数并重新使用它的新值。 最后,我将iframe的新来源分配给iframe。 事后我意识到我可以避免砍掉“name =”只是为了重新加上它,但是我开始在早上6:30看到这个,然后我的大脑完全清醒了。 🙂