Script标签与访问HTML页面详解(4)

window.onload = initAll;//仍然要写在window.onload事件处理函数中
 function initAll() {
  var pList = document.getElementsByTagName("P");
  //为什么要用大写的P?其实用小写p也可以,不区分大小写,但由于对象的tagName总报告的是大写的,就....
  alert(pList.length);//与数组相似,length报告有多少个元素,页面上有多少个p标签,就报告多少
  alert(pList[0].innerHTML);//这样来访问第一个p元素
 }另外,对于document.getElementsByTagName方法,还可以传一个"*"号作为参数,以获取页面的所有元素,类似于CSS里面的通配符


 window.onload = initAll;
 function initAll() {
 var allThings = document.body.getElementsByTagName("*");
 //可在任何DOM元素上调用getElementsByTagName方法,在body上调用此方法时,body外的标签不会获取到
 alert(allThings.length);//页面上有多少个标签,就报告多少(包含DOCTYPE)
 alert(allThings[3].innerHTML);//这样来访问第四个元素
 }其它-javascript:伪协议
伪协议不同于因特网上所真实存在的如,https://,ftp://,而是为关联应用程序而使用的.如:tencent://(关联QQ),data:(用base64编码来在浏览器端输出二进制文件),还有就是javascript:

我们可以在浏览地址栏里输入"javascript:alert('JS!');",点转到后会发现,实际上是把javascript:后面的代码当JavaScript来执行,并将结果值返回给当前页面

类似,我们可以在a标签的href属性中使用javascript伪协议

<a href="javascript:alert('JS!');"></a>
 //点击这面的链接,浏览器并不会跳转到任何页面,而是显示一个弹窗但javascript:伪协议有个问题,它会将执行结果返回给当然的页面

<a href="javascript:window.prompt('输入内容将替换当前页面!','');">A</a>解决方法很简单

<a href="javascript:window.prompt('输入内容将替换当前页面!','');undefined;">A</a>
 //将undefined加到最后尽管javascript伪协议提供了一定的灵活性,但在页面中尽量不要使用!而对于调试JavaScript,javascript伪协议则显得十分有用!

您可能感兴趣的文章:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wdwyxd.html