十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
点击浏览器上的查看,---源文件---
创新互联建站专注于企业全网营销推广、网站重做改版、阜新网站定制设计、自适应品牌网站建设、H5网站设计、电子商务商城网站建设、集团公司官网建设、成都外贸网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为阜新等各大城市提供网站开发制作服务。
然后在文本中查找 script
你会看到以下两种情况
1.
script language="javascript"
alert();//或其它
/script
2.script src="script/test.js"
那么你输入你访问的网址 例
即可查看JS源代码了!
还有一种情况,就是那种广告或统计的javascript
其实是利用document.write()写了一段 iframe 代码,
其实是在你的网页中加载了另一个网页的,我研究过的哈!
藏在__proto__里面,你多展开几次就可以看到的。
至于为什么呢。
我一是半会说不清。
我不一定理解正确。
[img]1. walk_the_DOM方法:这个方法的主要作用就只是遍历某个DOM节点(node)下的所有子节点,并且在遍历到每个节点的时候,都是执行参数中传入的那个方法(func),你要是想要对遍历到的节点做些其他什么事情,那么你自己就可以自定义个函数,把它当参数传入到walk_the_DOM方法里就行了;这个方法里可能会有疑问的地方:
1.1 debugger; 关键字,这个是调式js代码用的,你如果用ASP.NET调试的时候,你的js代码里
写有debugger关键字,那么执行到debugger的时候就会中断执行,就像加个断点一样。当
然在IE的开发人员工具里调试,效果也是一样的。
1.2 node.firstChild :这个是取得指定节点的第一个子节点。
1.3 node.nextSibling:取得指定节点的下一个兄弟节点。
2. getElementsByAttribute方法:这个方法里调用了walk_the_DOM方法遍历body对象,主要作用是根据HTML标记中的指定属性,取得所有该属性值等于传入值的HTML控件对象。先整个例子吧:
html
head
script language="javascript"
function Window_Load(){
//自定义属性depth为2的所有html控件对象
var elements = getElementsByAttribute("depth","2");
alert(elements[0].outerHTML);
//取得所有width为29的html控件对象
var elements = getElementsByAttribute("width","29");
}
var walk_the_DOM = function walk(node, func) {
debugger;
func(node);
node = node.firstChild;
while (node) {
walk(node, func);
node = node.nextSibling;
}
};
var getElementsByAttribute = function (att, value) {
var results = [];
walk_the_DOM(document.body, function (node) {
var actual = node.nodeType === 1 node.getAttribute(att);
if (typeof actual === 'string'
(actual === value || typeof value !== 'string')) {
results.push(node)
}
});
return results;
};
/script
/head
body onload="Window_Load();"
div id="node1"
div id="node11" depth="2" width="30" dd /div
div id="node12" depth="2" width="29" dd /div
div id="node13" depth="2" width="29" dd /div
/div
/body
/html
这里的属性,可以是HTML标记的默认属性,也可以是自定义的属性。 getElementsByAttribute方法里,比较难理解的地方可能是下面这一句:
var actual = node.nodeType === 1 node.getAttribute(att);
理解这段代码,先要清楚javascript里运算符的优先级(),它的执行顺序用括号标注下:
var actual = ((node.nodeType === 1) node.getAttribute(att));
先执行等同于(===),在执行逻辑和(),最后才赋值。另外你还要去了解一下逻辑运算符的“短路”方式(),这个在js里会用的比较多,但是其他语言可能不支持这样的用法。 总之上面这句代码跟下面这片代码的作用是一样一样的:
var actual;
if(node.nodeType !== 1){
actual = node.nodeType === 1; //得到的是个整型数值(Numeric)
}else{
actual = node.getAttribute(att));//得到的是个字串(String)
}
javascript的源码 被嵌入到浏览器中一般是看不到的
如果是javascript语言写的代码,可以在页面上右键--》 查看源码,在head部分找到引入的javascript文件的路径,然后再浏览器当前页面的网址 加上该文件的路径,就可以查看了
在网页中点右键,然后查看源文件,如果JS代码是直接写在HTML文件中的这样就能看到了,如果JS代码是在外部文件的,那就从HTML代码中找到js外部文件的网址,然后下载回来就能看了。
书店购买或网上购买。
这是一本讲解JavaScript编程语言的技术书籍,只不过,本书采用了一种全新的写作手法。
如果你厌倦了厚厚的、如同字典般的编程书籍,不妨尝试一下新的口味!
通过本书,你可以领悟到JavaScript的函数七重关秘籍;通过本书,你可以轻松学会使用jQuery作DOM对象;通过本书,你可以学会目前流行的Vue基础语法;通过本书,你还可以学会新的ES6常用语法。
本书可作为JavaScript初学者入门的趣味读物