Обработка url внутри фрейма
Доброго времени суток.
Уже замучился искать решение. имеем фрейм: <iframe name="myuslug" src="index.php?option=com_component&tmpl=component" class="ifmyfiles" width="1150" height="450" align="left"> Ваш браузер не поддерживает плавающие фреймы! </iframe> изначально он загружается без основного шаблона сайта за счет tmpl=componen, так вот как сделать так что бы при переходе по внутренним ссылкам компонента к ним автоматически добавлялось &tmpl=component. |
как вариант можно так:
- повесить событие onload - найти все компоненты <a> (document.querySelector('a');) - пробежать массивом и добавить в свойство вашу строку: var a = document.querySelector('a'); for (var i = 0, ln = a.length; i < ln; ++i){ a[i].setAttribute('href', a[i].getAttribute('href') + '&tmpl=component'); } |
Спасибо за ответ, а если на странице используется несколько фреймов, и для одних нужно добавлять &tmpl=component а для некоторых нет
|
Цитата:
|
Задам другой вопрос у каждого фрейма изначально указан url с параметром tmpl=component, он означает что загружается не index.php а component.php может в этом файле разместить скрипт который каждой ссылке будет подставлять &tmpl=component? скажите как это реализовать.
|
Работает только если вместо селектора использовать тег
var a = document.getElementsByTagName('a');, вопрос стал в другом как сделать что бы к ссылкам с GET параметрами добавлялось &tmpl=componet а к ссылкам без GET просто ?tmpl=component |
js кода всего на 5 строчек:
это ваш файл фрейм с именем index.html <html> <head> <title>example</title> </head> <body> <a href="/link?param1=123">111</a> <a href="/link?param1=123">111</a> <a href="/link?param1=123">111</a> </body> </html> это ваш главный файл (название какое хотите), который вызывает index.html <html> <head> <title>example</title> <script> function loadFrame(frame){ Array.prototype.forEach.call(frame.contentWindow.document.querySelectorAll('a'), function (a){ a.setAttribute('href', a.getAttribute('href') + '&tmpl=component'); }); } </script> </head> <body> <iframe src="index.html" onload="loadFrame(this);"></iframe> <iframe src="index.html" onload="loadFrame(this);"></iframe> <iframe src="index.html" onload="loadFrame(this);"></iframe> </body> </html> |
Спасибо большое за помощь! Все работает.
|
Часовой пояс GMT +3, время: 08:02. |