Атрибут HREF не работает внутри IFRAME - PullRequest
0 голосов
/ 24 ноября 2011

У меня есть iframe для предварительного просмотра некоторых данных.

Данные хранятся в переменной javascript:

var s = '<html><head></head><body><a href="#">Hello_world</a></body></html>';

Я передаю данные [passing s] в iframe SRC атрибут через Javascript.

Вот код:

document.getElementById('output_iframe1').src = "data:text/html;charset=utf-8," + escape(s);

Таким образом, данные загружаются в iframe, за исключением <a> элементов.

The Problem is Iможет видеть text но не ссылки.Тем не менее, события элемента работают нормально (щелчок, зависание и т. Д.).

Я проверил через Firebug и все там работает хорошо.

Я изменил атрибут HREF на http://somesite/file.html наFirebug и удивительно это сработало, но не с #.

Собственно что я делаю не так ??Почему я не вижу LINKS без http://?

Спасибо.

Обновление 1: я протестировал его с последней версией Firefox 8.0, и она работает хорошо, также проверено с помощью Google Chrome [Работает хорошо, но при нажатии на любые ссылки исчезают все ссылки], Yeah as usual IE failed in all cases,it looks like IE doesn't know what is an Iframe

Ответы [ 2 ]

0 голосов
/ 24 ноября 2011

Используйте href = "javascript: void (0)" вместо href = "#".

OR

Поскольку вы присваиваете его атрибуту src, вам необходимо закодировать строку перед ее применением. Это потому, что обычно значение src равно url, а иногда в браузерах используется "#". Надеюсь, вы понимаете, что я говорю. Используйте encodeURIComponent () или encodeURI (). Смотрите синтаксис здесь http://www.w3schools.com/jsref/jsref_encodeuricomponent.asp

0 голосов
/ 24 ноября 2011

Попробуйте это

var s = "<html><head></head><body><a href='#'>Hello_world</a></body></html>";

Вместо этого

var s = "<html><head></head><body><a href="#">Hello_world</a></body></html>";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...