如何将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看到这个,然后我的大脑完全清醒了。 🙂