考虑这个简单的 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"
最佳答案
我相信这对你有用: Random alpha-numeric string in JavaScript?
只需生成一个随机字符串(1 到 10 个字符之间),然后将其分配给 iframe 的名称属性。
我为您整理了一个 fiddle :http://jsfiddle.net/4agLwfe8/。
<iframe id="iframe" src="http://www.facebook.com?user=123&name=test" width="200" height="200">
此解决方案假设您没有使用 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;
首先有两个函数。第一个生成 1 到 10 之间的随机数,这将是查询字符串中“name”参数的字符长度。第二个函数生成这个随机字符串,传入生成的随机数,以及您指定可以使用的字符串(来 self 链接到的初始解决方案)。
从那里,我只需通过我给它的 ID 选择 iframe 并获取它的来源。对于源代码,我只是用子字符串删除了“name”参数和它的值,然后附加新的“name”参数和它的新值。最后,我将 iframe 的新源分配回 iframe。事后看来,我意识到我本可以避免砍掉“name=”只是为了再次添加它,但我在早上 6:30 开始看这个,当时我的大脑还没有完全清醒。 :)
关于javascript - 如何将 iFrame 的部分 URL 更改为随机字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34120393/