导航到:blockchain.info时
您会注意到,如果在页面上单击view-source
,它将显示与inspect-element
时不同的HTML。我的问题是,他们是怎么做到的?
据我所知,他们正在使用来自AngularJS框架的AngularJS模板。但是,如果没有从客户机-(浏览器)-side加载它们,那么我的浏览器如何知道从哪里读取它们呢?
另外,如果我要将jQuery插入到页面上,jQuery会知道事件何时触发on('click', 'submit', 'whatever') etc ...
吗?
发布于 2018-03-22 03:10:24
当您单击View Source
时,您将看到服务器返回的内容。许多页面并不返回完整的HTML页面,而是一些框架HTML并通过JavaScript添加其余的功能。
当您使用Inspect Element
时,您正在查看浏览器对DOM的表示,其中包括通过JavaScript完成的任何操作。有关css-技巧:https://css-tricks.com/dom/的文章,请参阅直观的解释。
发布于 2018-03-22 03:09:38
任何呈现HTML客户端的框架(React,Angular,Vue)都会这样做.实际的源代码可以是一些基本的html样板和div,然后通过Javascript之类的东西加载到应用程序中。因此,当您查看页面的源时,您将看到这个基本模板。但是,在检查元素时,Chrome工具(和其他工具)正在检查正在呈现的客户端元素。您的浏览器已经将这些元素放置在DOM中,它们在代码执行之前并不存在于源代码中。希望这能帮你理清问题。
https://stackoverflow.com/questions/49419875
复制相似问题