#javascript #html #iframe
#javascript #HTML #iframe
Вопрос:
Я ищу простой способ (с использованием JavaScript), чтобы часть URL-адреса страницы была добавлена в конец URL-адреса iframe src.
Пример, URL страницы: www.example.com/?id=XYZ
Затем мне нужна часть XYZ, которая является идентификатором, который будет добавлен в iframe src следующим образом:
И iframe src: www.otheradress.com/XYZ
Комментарии:
1. Пожалуйста, добавьте то, что вы пробовали до сих пор. может быть, какой-нибудь пример javascript. куда вы добавляете этот iframe?
Ответ №1:
Вы можете получить строку запроса из своего маршрута с window.location.search
помощью (только то, что идет после ‘?’, включено), и вы можете проанализировать параметры с помощью URLSearchParams следующим const params = new URLSearchParams(window.location.search);
образом.
После этого params
создается объект с определенными методами, с помощью которого вы можете получить свой параметр по имени params.get('id');
.
Таким образом, вам нужно только объединить ваш базовый URL и этот параметр и передать его в src
атрибут iframe.
Полный пример:
const baseIframeUrl = 'www.otheradress.com/';
const urlParams = new URLSearchParams(window.location.search);
document.getElementById('#yourIframe').src = baseIframeUrl . urlParams.get('id');
Если вы хотите использовать атрибут src из HTML, это будет:
const urlParams = new URLSearchParams(window.location.search);
document.getElementById('#yourIframe').src = document.getElementById('#yourIframe').src . urlParams.get('id');
Хотя имейте в виду, что этот подход потерпит неудачу при многократном вызове, если вы не сохраните где-нибудь исходный URL.
Кроме того, как указал mplungjan, вы не можете получить доступ к src
iframe другого происхождения.
Комментарии:
1. Вы не можете получить src iFrame другого происхождения
2. Также
www.otheraddress.com
недопустимый URL-адрес без протокола3. Да, это просто взято из его примера кода, я не думаю, что это нуждается в разъяснении.
Ответ №2:
Я бы использовал URL и URLSearchParams
ПРИМЕЧАНИЕ: Вы не можете ПРОЧИТАТЬ iFrame src из iframe, который загрузил страницу из другого источника по соображениям безопасности
const url = new URL("https://www.example.com/?id=XYZ"); // new URL(location.href);
const id = url.searchParams.get("id")
console.log(id)
const iFrameUrl = new URL("https://www.otheradress.com/")
iFrameUrl.pathname =id;
console.log(iFrameUrl.toString()); // here you can set the source of the iFrame