Как изменить часть URL-адреса iFrame на случайную строку?

Рассмотрим этот простой 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 символов), а затем назначьте ее атрибуту name iframe.

Я собрал для вас скрипку: 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 функции. Первая генерирует случайное число от 1 до 10, это будет длина символов для вашего параметра «name» в вашей строке запроса. Вторая функция генерирует эту случайную строку, передавая случайное число, которое было сгенерировано, и строку символов (из исходного решения, на которое я ссылался) вы указали, что вы можете использовать.

Оттуда я просто выбираю iframe по идентификатору, который я ему дал, и схватил его источник. С источником я просто вырезаю параметр «имя», а его значение – подстрокой, а затем добавляет новый параметр «имя» и снова добавляет новое значение. Наконец, я назначаю новый источник iframe обратно в iframe. Оглядываясь назад, я понял, что мог бы избежать измельчения «name =» только для того, чтобы снова добавить его, но я начал смотреть на это в 6:30 утра до того, как мой мозг полностью проснулся. 🙂