Обработка 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, время: 22:01. |