我正在使用以下功能:
function pdfChanger(location){
document.getElementById("pdf").setAttribute("data",location);
}
在这里被称为:
<a href="javascript:pdfChanger('documents/SecurityDocs/sample.pdf')">test1</a><br/>
用于更改此对象中显示的pdf文件:
<object id="pdf" data="documents/sample2.pdf#toolbar=0&navpanes=0&scrollbar=0&page=1&view=FitHtop"
type="application/pdf"></object>
在firefox中单击唤起此功能的链接会正确更改pdf对象。但是,在chrome中,您必须在单击链接后单击pdf,以便正确显示更改的pdf。在IE中,pdf根本不会改变。为什么会发生这种情况,我该怎么做才能使这个功能在所有浏览器中统一运行?
答案 0 :(得分:0)
设置属性值不保证重新呈现html元素。
如果我们改变img标签的宽度或高度,我们总是看到图像重新渲染。
如果我们更改img标签的id怎么样,浏览器是否需要重新渲染图像?我不这么认为,但有些浏览器可能。
&#39;数据&#39;从渲染的角度来看,对象标签的属性可以从浏览器到浏览器的思维方式不同。它被视为数据&#39;或者来源网址#39;
为了保证元素的渲染,最好重新编写整个元素。您可以创建/添加元素或使用innerHTML。例如,
document.getElementById('object_div').innerHTML='<object id="pdf" ...></object>'