【问题标题】:HTML parsing / checking for certain value of certain attribute of certain tag [duplicate]HTML解析/检查某些标签的某些属性的某些值[重复]
【发布时间】:2013-04-20 07:47:59
【问题描述】:

如何使用 JavaScript 检查网页是否包含以下内容:

<meta name="viewport" content="width=device-width, initial-scale=1.0 maximum-scale=1, user-scalable=no" />

<meta name="viewport" content="initial-scale=1.0 maximum-scale=1" />

<meta name="viewport" content="maximum-scale=1" />

<meta name="viewport" content="maximum-scale=1.0" />

<meta name="viewport" content="user-scalable=no" />

如果源代码中有任何内容,则运行某些 JavaScript 代码,例如在 if 条件套件中。

基本上我要做的是检查缩放是否被禁用,如果是,则执行某些代码,如果不是,则执行其他代码。

【问题讨论】:

  • var 节点 = $('meta[name=viewport]'); $(nodes).each(function(index, nodeValue){ var content = $(nodeValue).attr('content');//这里查看nodeValue });
  • @VijayPatel 谢谢。
  • @VijayPatel 你能解释一下如何在答案中检查索引中每个元素的 nodeValue 吗?
  • @Irfan 请查看我的帖子

标签: javascript jquery html html-parsing zooming


【解决方案1】:

你可以使用

function readViewportValues(){
    var metas = $('meta[name=viewport]');
    var properties = {};

    function isNumber(n) {
        return !isNaN(parseFloat(n)) && isFinite(n);
    }

    function readItem(index, text) {
        var parts = jQuery.trim(text).split(' ');
        console.log(parts);
        if (parts.length > 1) {
            $.each(parts, readItem);
        } else {
            parts = parts[0].split('=');
            var key = jQuery.trim(parts[0]),
                value = parts[1];
            value = isNumber(value) ? parseFloat(value) : value;
            properties[key] = value;
        }
    }

    metas.each(function () {
        var content = $(this).attr('content').split(',');
        $.each(content, readItem);
    });
    return properties;
}


// usage
var viewport = readViewportValues();
if (viewport['maximum-scale'] === 1){
    // do something
}

这将返回一个具有找到的属性的对象,您可以对其进行查询..

【讨论】:

    【解决方案2】:
    var nodes = $('meta[name=viewport]'); 
    $(nodes).each(function(index, nodeValue){ 
         var content = $(nodeValue).attr('content');// check nodeValue here 
         // You will get values of content from each meta element here in content variable ex. "user-scalable=no"
         // so now based on these values you can so do any processing you want
    }); 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-16
      • 1970-01-01
      • 1970-01-01
      • 2011-08-22
      • 1970-01-01
      • 2018-04-21
      相关资源
      最近更新 更多