如何检测网页中是否有'多个html标签
How to detect if there're more than one html tags in web page
我们有一个aspx页面嵌入到一个外部应用程序中,我们最近发现他们在页面中插入了一个额外的html标签,因为一些cookie的原因。他们没有办法删除标签或解决问题。我想如果有任何方法,我可以检测注入额外的html标签从我这边,所以我们可以做一些具体的事情。
最后一页看起来像这样:
<!--Here is the injected stuff-->
<html>
<body onfocus="document.cookie='blahblahblah'"></body>
</html>
<!--Below is our original markup-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<body>
Some content
</body>
</html>
我试过使用jQuery选择器和JavaScript文档。querySelectorAll选择所有的html/body标签,但看起来他们只能找到原始标记中的html/body标签。他们就像
$(function(){
if($('html').length > 1)
//Do something
else if(document.querySelectorAll('html').length > 1)
//Do something
});
这些都不起作用。当浏览器给出以下警告消息时,它们总是返回length = 1:
HTML1502: Unexpected DOCTYPE。只允许一个DOCTYPE,并且它必须出现在任何元素之前。HTML1513:找到额外的"
"标签。每个文档只能存在一个""标签。
我想知道是否有任何方法,我可以使用JavaScript找到这个额外的标签,或者我可以模拟浏览器做了什么来检测这个额外的标签。
我认为在原生Javascript中不可能做到这一点,因为Html DOM树只能有一个Html标签,这是一种惯例。我认为您可以使用服务器端语言来实现这一点。
就像这样。
$(document).ready(function(){
$.ajax({
url: 'yourscript.yourTechno',
method: 'GET'
}).done(function(result){
alert('you have '+result+ 'html tags');
})
})
在服务器端(例如使用PHP和dom解析器)
$count = 0;
$html = file_get_html('http://www.myWebSite.com/myPageToParse.html');
foreach($html->find('html') as $element){
$count ++;
}
echo($count);
http://api.jquery.com/jquery.ajax/http://simplehtmldom.sourceforge.net/相关文章:
- 通过点击文本区域添加和删除多个标签
- jquery on('change'.. 在多个标签中不起作用
- 如何将具有多个标签的多个的所有数据获取到一个数组中
- jquery从单个和多个标签解析xml
- 如何使多个标签显示在JQuery范围滑块中
- 将多个
标签替换为 JavaScript - 如何使用JQuery附加多个标签和脚本
- 选择具有条件的多个标签
- 当存在多个标签时,无法突出显示文本
- 如何使用 jQuery 删除多个标签的属性样式
- 在一行中过滤多个标签(Appcelerator)
- 如何使用Javascript在HTML中标记一些跨越多个标签的文本
- Javascript将值发送到for循环中创建的多个标签中
- 如何使用Jquery调用多个a标签的模态
- 输入模式允许多个标签,用空格分隔(#one #two)
- 获取多个< >标签
- 创建多个标签,并添加不同的文本到他们的变量
- 当多个
- 我如何做一个文本框列表使用jquery有多个标签在一个文本框
- JQuery多个标签组在一个页面