當前位置: 首頁>>代碼示例>>TypeScript>>正文


TypeScript predicates.hasAttr方法代碼示例

本文整理匯總了TypeScript中dom5.predicates.hasAttr方法的典型用法代碼示例。如果您正苦於以下問題:TypeScript predicates.hasAttr方法的具體用法?TypeScript predicates.hasAttr怎麽用?TypeScript predicates.hasAttr使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在dom5.predicates的用法示例。


在下文中一共展示了predicates.hasAttr方法的4個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。

示例1: parse

  /**
   * Parse html into ASTs.
   *
   * @param {string} htmlString an HTML document.
   * @param {string} href is the path of the document.
   */
  parse(
      contents: string, url: ResolvedUrl, urlResolver: UrlResolver,
      inlineInfo?: InlineDocInfo<any>): ParsedHtmlDocument {
    const ast = parseHtml(contents, {locationInfo: true});

    // There should be at most one <base> tag and it must be inside <head> tag.
    const baseTag = query(
        ast,
        p.AND(
            p.parentMatches(p.hasTagName('head')),
            p.hasTagName('base'),
            p.hasAttr('href')));

    let baseUrl;
    if (baseTag) {
      const baseHref = getAttribute(baseTag, 'href')! as FileRelativeUrl;
      baseUrl = urlResolver.resolve(baseHref, url, undefined);
    } else {
      baseUrl = url;
    }

    const isInline = !!inlineInfo;
    inlineInfo = inlineInfo || {};
    return new ParsedHtmlDocument({
      url,
      baseUrl,
      contents,
      ast,
      locationOffset: inlineInfo.locationOffset,
      astNode: inlineInfo.astNode,
      isInline,
    });
  }
開發者ID:asdfg9822,項目名稱:polymer-analyzer,代碼行數:39,代碼來源:html-parser.ts

示例2: _rewriteAstToEmulateBaseTag

 /**
  * Given an import document with a base tag, transform all of its URLs and
  * set link and form target attributes and remove the base tag.
  */
 private _rewriteAstToEmulateBaseTag(ast: ASTNode, docUrl: ResolvedUrl) {
   const baseTag = dom5.query(ast, matchers.base);
   const p = dom5.predicates;
   // If there's no base tag, there's nothing to do.
   if (!baseTag) {
     return;
   }
   for (const baseTag of dom5.queryAll(ast, matchers.base)) {
     removeElementAndNewline(baseTag);
   }
   if (dom5.predicates.hasAttr('href')(baseTag)) {
     const baseUrl = this.bundler.analyzer.urlResolver.resolve(
         docUrl, dom5.getAttribute(baseTag, 'href')! as FileRelativeUrl);
     if (baseUrl) {
       this._rewriteAstBaseUrl(ast, baseUrl, docUrl);
     }
   }
   if (p.hasAttr('target')(baseTag)) {
     const baseTarget = dom5.getAttribute(baseTag, 'target')!;
     const tagsToTarget = dom5.queryAll(
         ast,
         p.AND(
             p.OR(p.hasTagName('a'), p.hasTagName('form')),
             p.NOT(p.hasAttr('target'))));
     for (const tag of tagsToTarget) {
       dom5.setAttribute(tag, 'target', baseTarget);
     }
   }
 }
開發者ID:Polymer,項目名稱:vulcanize,代碼行數:33,代碼來源:html-bundler.ts

示例3: attributeSelectorToPredicate

function attributeSelectorToPredicate(selector: cssWhat.Attribute):
    dom5.Predicate {
  switch (selector.action) {
    case 'exists':
      return dom5.predicates.hasAttr(selector.name);
    case 'equals':
      return dom5.predicates.hasAttrValue(selector.name, selector.value);
    case 'start':
      return (el) => {
        const attrValue = dom5.getAttribute(el, selector.name);
        return attrValue != null && attrValue.startsWith(selector.value);
      };
    case 'end':
      return (el) => {
        const attrValue = dom5.getAttribute(el, selector.name);
        return attrValue != null && attrValue.endsWith(selector.value);
      };
    case 'element':
      return dom5.predicates.hasSpaceSeparatedAttrValue(
          selector.name, selector.value);
    case 'any':
      return (el) => {
        const attrValue = dom5.getAttribute(el, selector.name);
        return attrValue != null && attrValue.includes(selector.value);
      };
  }
  const never: never = selector.action;
  throw new Error(
      `Unexpected type of attribute matcher from CSS parser ${never}`);
}
開發者ID:asdfg9822,項目名稱:polymer-linter,代碼行數:30,代碼來源:util.ts

示例4:

 ...constants.URL_ATTR.map((attr) => predicates.hasAttr(attr))),
開發者ID:MehdiRaash,項目名稱:tools,代碼行數:1,代碼來源:matchers.ts


注:本文中的dom5.predicates.hasAttr方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。