从地址栏运行时,Javascript代码替换页面内容

时间:2011-08-10 02:12:44

标签: javascript

为了它,我决定写

for(var i =0;i<document.getElementsByTagName("p").length;i++){
    document.getElementsByTagName("p")[i].style.textTransform = "uppercase";
}

我打算把它作为一个笑话发给别人。它应该使页面上的所有文本都是大写的。

我不明白的是:当我从地址栏运行时,为什么页面的整个内容会被“大写”一词替换?

javascript:for(var i =0;i<document.getElementsByTagName("p").length;i++){ document.getElementsByTagName("p")[i].style.textTransform = "uppercase"; }

3 个答案:

答案 0 :(得分:1)

javascript:for(var i =0;i<document.getElementsByTagName("p").length;i++){ document.getElementsByTagName("p")[i].style.textTransform = "capitalize";void(0);}    

大写段落中的所有单词。

答案 1 :(得分:0)

如果您的整个文档都是由p标记构成的,那么您正在使用这些标记uppercase制作所有内容。

请参阅此http://jsfiddle.net/jasongennaro/Y6nn2/

你想要发生什么?

答案 2 :(得分:0)

如果您想将其粘贴到地址栏中,请尝试:

javascript:(function(){
               for(var p=document.getElementsByTagName("p"),n=p.length; n--;){
                  p[n].style.textTransform = "uppercase";
               }
           })()

不完全确定为什么它不能在地址栏中起作用(至少在Chrome中),但是如果你从一个函数调用它的话。可能存在范围问题,或者它可能与for构造有关。无论如何,如果你将它包装在一个匿名函数调用中,它就会起作用。