我有一个iframe来预览一些数据。
数据存储在javascript变量中:
var s = '<html><head></head><body><a href="#">Hello_world</a></body></html>';
我通过Javascript将数据[passing s
]传递给iframe SRC
属性。
以下是代码:
document.getElementById('output_iframe1').src = "data:text/html;charset=utf-8," + escape(s);
因此数据会加载到除<a>
个元素之外的iframe上。
The Problem is
我可以看到text
但不能看到链接。但是,元素事件正常工作(单击,悬停等)。
我通过Firebug进行了检查,所有人都在那里工作得很好。
我在Firebug上将HREF
属性更改为http://somesite/file.html
,令人惊讶的是它有效,但不是#
。
其实我做错了什么?
为什么我看不到LINKS
没有http://
?
谢谢。
更新1:我使用最新的Firefox 8.0对其进行了测试,效果很好,也使用谷歌浏览器进行了检查[运行良好,但点击任何链接消失了所有链接],Yeah as usual IE failed in all cases,it looks like IE doesn't know what is an Iframe
答案 0 :(得分:0)
试试这个
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>";
答案 1 :(得分:0)
使用href =“javascript:void(0)”而不是href =“#”。
OR
由于您将其分配给src属性,因此需要在应用字符串之前对其进行编码。这是因为,通常src值是url,有时在浏览器url中使用“#”。希望你明白我在说什么。 使用encodeURIComponent()或encodeURI()。请参阅此处的语法 http://www.w3schools.com/jsref/jsref_encodeuricomponent.asp