我是Javascript的初学者,我正试图从embed标签中获取一个元素。此embed标记包含pdf。 我想从pdf查看器中获取“下一页”按钮,并模拟对它的点击,以便自动滚动到pdf的下一页。
我的HTML代码是这样的(非常简化):
<html>
<body>
<div id="display-zone">
<embed id="myPdf" src="./myPdf.pdf">
#document
<html>
<body>
<!-- The button I want to get in my JavaScript -->
<button id="next" class="toolbarButton pageDown"></button>
</body>
</html>
</embed>
</div>
</body>
</html>
我的JS代码在网页上打印pdf查看器:
affichage.innerHTML = "<embed class=\"media\" id=\""+ongletsMedias[i].firstChild.data+"\" src= \""+ongletsMedias[i].firstChild.data+"\" width= \"1000\" height= \"800\">";
// ongletsMedias[i].firstChild.data equals to "myPdf"
t = 5000; // time before starting pdfDefile()
setTimeout(pdfDefile,t,ongletsMedias[i].firstChild.data,i,1); //call the function to scroll pdf pages
最后我的函数pdfDefile()
我正在调用以滚动pdf页面:
function pdfDefile(dir,i,page) {
var xhttp = new XMLHttpRequest();
var t = 0;
xhttp.onreadystatechange = function() {
var checkbox = document.getElementById('checkbox');
if (this.readyState == 4 && this.status == 200 && checkbox.checked) {
document.getElementById("span").innerHTML = this.responseText; // display the number of pages of my pdf
var t = 5000;
if (page < parseInt(this.responseText)) { //test for recursive call
/*HERE is where I want to get the "next" button */
setTimeout(pdfDefile,t,dir,i,page+1);// recall this function while there is a next page to display
} else {
setTimeout(jouerMedia,t,i+1);// call the main fuction, no problem here
}
}
};
xhttp.open("GET", "nbPagesPDF.php?pages="+dir, true);
xhttp.send();
}
我已经查看了一个现有主题(Get element in embed tag),但我无法在我的JS中使用它。
所以,请你能帮助我再次使我的代码变得更好(可能是;-))?
此致
答案 0 :(得分:0)
尝试
var embed = document.getElementById('myPdf');
// Wait for document to load inside embed element
embed.on('load', function() {
embed.getElementById('next').click();
});
(我在这个例子中使用jQuery添加事件监听器,不确定你是否在项目中使用它?)
如果没有jQuery,你可以这样做:
var embed = document.getElementById('myPdf');
embed.onload = function() {
embed.getElementById('next').click();
};
您可能无法触发该按钮上的点击事件,因为通常必须采取用户操作来触发来自js的点击。