Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Как получить значение src у frame? (https://javascript.ru/forum/dom-window/40107-kak-poluchit-znachenie-src-u-frame.html)

CEVER5 24.07.2013 04:15

Как получить значение src у frame?
 
Добрый день, господа!
Не могу найти решения, как получить значение атрибута "src" у тега <frame>. Уже пол Рунета облазил, но решения так и не нашел :(
Вот код страницы:
<html>
    <frameset style="border: none;">
        <frame name="frame_top" src="url1" marginwidth="0" marginheight="0" frameborder="0" />
        <frame name="frame_footer" src="url2" marginwidth="0" marginheight="0" scrolling="no" noresize="noresize" frameborder="0" />
    </frameset>
</html>


Пробовал такие методы, подскажите что не так?:
var ff = frames.frame_top.getAttribute("src");
var ur = document.getElementsByName('frame_top').src;
var ss = document.getElementsByTagName("frame").src;

ОлегА 24.07.2013 08:07

<html>
    <head>
    	<script>
    	onload = function(){
    		fr1 = document.getElementsByTagName('iframe')[0]

			alert(fr1.src)
            alert( window.frames[0].location.href )
    	}
    	</script>
    </head>
    <body>
    	1
    <frameset style="border: none;">
        <iframe name="frame_top" src="url1" marginwidth="0" marginheight="0" frameborder="0" />
        <iframe name="frame_footer" src="url2" marginwidth="0" marginheight="0" scrolling="no" noresize="noresize" frameborder="0" />
    </frameset>
	</body>
</html>

dimka_68 24.07.2013 13:13

src указывает на тот же домен? Если нет, то вы не считаете ничего из фрейма

skrudjmakdak 24.07.2013 13:29

Цитата:

Сообщение от dimka_68 (Сообщение 263954)
src указывает на тот же домен? Если нет, то вы не считаете ничего из фрейма

тогда объясните это:
<!DOCTYPE HTML>
<html>
  <head>
	  <meta charset="utf-8">
	  <title>Тег INPUT</title>
  </head>
  <body>
		<div id="d">
			<iframe src="http://htmlbook.ru/"></iframe>
		</div>
    <script type="text/javascript">
	alert(document.getElementById('d').children[0].src);
    </script>
  </body>
</html>

dimka_68 24.07.2013 13:39

Извиняюсь, поторопился с ответом. Логично, что во фрейм можно залесть... Наоборот, из фрейма в родителя, не всегода можно.
Простите, если ввёл кого-то в замешательство

Deff 24.07.2013 17:58

Цитата:

Сообщение от dimka_68
Логично, что во фрейм можно залесть...

:) Тут внутрь фрейма никто не лазит - просто смотрят атрибут у тега

CEVER5 25.07.2013 00:29

Огромная благодарность за ответы! Только, заметьте, что у меня <frame>, а не <iframe>. К сожалению, способы предложенные Вами, не работают. В консоле Chorme следующее:
На это (fr1 = document.getElementsByTagName('iframe')[0];) ругается так (Uncaught TypeError: Cannot read property 'src' of undefined). А на это (window.frames[0].location.href;), вот так (Uncaught TypeError: Cannot read property 'location' of undefined).
Ещё пробовал так: document.getElementsByTagName('frame')[0]; - Результат тот же..
Что можете еще посоветовать?:blink:

ОлегА 25.07.2013 07:51

Цитата:

Сообщение от CEVER5
Что можете еще посоветовать?

делайте iframe

skrudjmakdak 25.07.2013 08:35

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
		<script type="text/javascript">
	
	function fr()
		{
		alert(document.getElementsByTagName('frameset')[0].children[0].src);
		}
		//alert();
	</script>
	</head>
	<frameset rows="80,*" cols="*"">
		<frame src="http://htmlbook.ru/" name="topFrame" scrolling="no" noresize onload="fr();">
	</frameset>
</html>

CEVER5 25.07.2013 09:53

Цитата:

Сообщение от ОлегА
делайте iframe

Я не тугодум - был бы код мой, давно бы поправил ;)

skrudjmakdak, огромнеейшее спасибо, Ваши примеры работают здесь замечательно, а у меня отказывают.. Может быть дело в том, что я использую скрипт, через расширение Tampermonkey и у него есть, какая-то своя особенность реагировать на это? :)


Часовой пояс GMT +3, время: 10:58.