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


TypeScript dom5.getAttribute函數代碼示例

本文整理匯總了TypeScript中dom5.getAttribute函數的典型用法代碼示例。如果您正苦於以下問題:TypeScript getAttribute函數的具體用法?TypeScript getAttribute怎麽用?TypeScript getAttribute使用的例子?那麽, 這裏精選的函數代碼示例或許可以為您提供幫助。


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

示例1: _updateExternalModuleScripts

 /**
  * Update the `src` attribute of external `type=module` script tags to point
  * at new bundle locations.
  */
 public async _updateExternalModuleScripts(ast: ASTNode) {
   const scripts = dom5.queryAll(ast, matchers.externalModuleScript);
   for (const script of scripts) {
     const oldSrc = dom5.getAttribute(script, 'src');
     const oldFileUrl = this.bundler.analyzer.urlResolver.resolve(
         this.assignedBundle.url, oldSrc as FileRelativeUrl);
     if (oldFileUrl === undefined) {
       continue;
     }
     const bundle = this.manifest.getBundleForFile(oldFileUrl);
     if (bundle === undefined) {
       continue;
     }
     const newFileUrl = bundle.url;
     const newSrc = this.bundler.analyzer.urlResolver.relative(
         this.assignedBundle.url, newFileUrl);
     dom5.setAttribute(script, 'src', newSrc);
   }
 }
開發者ID:Polymer,項目名稱:vulcanize,代碼行數:23,代碼來源:html-bundler.ts

示例2: async

        'changes the href to another bundle if strategy moved it', async () => {
          const bundler = getBundler({
            // This strategy moves a file to a different bundle.
            strategy: (bundles: Bundle[]): Bundle[] => {
              return [
                new Bundle(
                    'html-fragment',
                    new Set([resolve('default.html')]),
                    new Set([resolve('default.html')])),
                new Bundle(
                    'html-fragment',
                    new Set(),  //
                    new Set([
                      resolve('imports/simple-import.html'),
                      resolve('imports/another-simple-import.html'),
                    ]))
              ];
            }
          });
          const manifest =
              await bundler.generateManifest([resolve('default.html')]);
          const {documents} = await bundler.bundle(manifest);
          const document = documents.getHtmlDoc(resolve('default.html'))!;
          assert(document);

          // We've moved the 'imports/simple-import.html' into a shared bundle
          // so a link to import it now points to the shared bundle instead.
          const linkTag = dom5.query(
              document.ast!,
              preds.AND(
                  preds.hasTagName('link'),
                  preds.hasAttrValue('rel', 'import')))!;
          assert(linkTag);
          assert.equal(
              dom5.getAttribute(linkTag, 'href'), 'shared_bundle_1.html');

          const shared = documents.getHtmlDoc(resolve('shared_bundle_1.html'))!;
          assert(shared);
          assert.isOk(dom5.query(
              shared.ast, dom5.predicates.hasAttrValue('id', 'my-element')));
        });
開發者ID:Polymer,項目名稱:tools,代碼行數:41,代碼來源:bundler_test.ts

示例3: _transformIter

  protected async *
      _transformIter(files: AsyncIterable<File>): AsyncIterable<File> {
    for await (const file of files) {
      if (file.path !== this.filePath) {
        yield file;
        continue;
      }

      const contents = await getFileContents(file);
      const parsed = parse5.parse(contents, {locationInfo: true});
      const base = dom5.query(parsed, baseMatcher);
      if (!base || dom5.getAttribute(base, 'href') === this.newHref) {
        yield file;
        continue;
      }

      dom5.setAttribute(base, 'href', this.newHref);
      dom5.removeFakeRootElements(parsed);
      const updatedFile = file.clone();
      updatedFile.contents = new Buffer(parse5.serialize(parsed), 'utf-8');
      yield updatedFile;
    }
  }
開發者ID:chrisekelley,項目名稱:polymer-build,代碼行數:23,代碼來源:base-tag-updater.ts

示例4: 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): ParsedHtmlDocument {
    const ast = parseHtml(contents, {locationInfo: true});

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

    const isInline = !!inlineInfo;
    inlineInfo = inlineInfo || {};

    let baseUrl: ResolvedUrl =
        inlineInfo.baseUrl !== undefined ? inlineInfo.baseUrl : url;
    if (baseTag) {
      const baseTagHref = getAttribute(baseTag, 'href')! as FileRelativeUrl;
      const resolvedBaseTagHref =
          urlResolver.resolve(url, baseTagHref, undefined);
      if (resolvedBaseTagHref !== undefined) {
        baseUrl = resolvedBaseTagHref;
      }
    }

    return new ParsedHtmlDocument({
      url,
      baseUrl,
      contents,
      ast,
      locationOffset: inlineInfo.locationOffset,
      astNode: inlineInfo.astNode,
      isInline,
    });
  }
開發者ID:MehdiRaash,項目名稱:tools,代碼行數:43,代碼來源:html-parser.ts

示例5: _updateExternalModuleScriptTags

 /**
  * Update the `src` attribute of external `type=module` script tags to point
  * at new bundle locations.
  */
 public async _updateExternalModuleScriptTags(ast: ASTNode) {
   const scripts = dom5.queryAll(ast, matchers.externalModuleScript);
   for (const script of scripts) {
     const oldSrc = dom5.getAttribute(script, 'src');
     const oldFileUrl = this.bundler.analyzer.urlResolver.resolve(
         this.document.parsedDocument.baseUrl, oldSrc as FileRelativeUrl);
     if (oldFileUrl === undefined) {
       continue;
     }
     const bundle = this.manifest.getBundleForFile(oldFileUrl);
     if (bundle === undefined) {
       continue;
     }
     // Do not rewrite the src if the current bundle is going to be the new
     // home of the code.
     if (bundle.url === this.assignedBundle.url) {
       continue;
     }
     const newFileUrl = bundle.url;
     const newSrc = this.bundler.analyzer.urlResolver.relative(
         this.assignedBundle.url, newFileUrl);
     dom5.setAttribute(script, 'src', newSrc);
   }
 }
開發者ID:Polymer,項目名稱:tools,代碼行數:28,代碼來源:html-bundler.ts

示例6: async

 const visitor = async (node: ASTNode) => {
   if (isStyleNode(node)) {
     const tagName = node.nodeName;
     if (tagName === 'link') {
       const href = dom5.getAttribute(node, 'href')! as FileRelativeUrl;
       features.push(new ScannedImport(
           'html-style',
           href,
           document.sourceRangeForNode(node)!,
           document.sourceRangeForAttributeValue(node, 'href')!,
           node,
           true));
     } else {
       const contents = dom5.getTextContent(node);
       const locationOffset = getLocationOffsetOfStartOfTextContent(node);
       const commentText = getAttachedCommentText(node) || '';
       features.push(new ScannedInlineDocument(
           'css',
           contents,
           locationOffset,
           commentText,
           document.sourceRangeForNode(node)!,
           node));
     }
   }
   // Descend into templates.
   if (node.tagName === 'template') {
     const content = treeAdapters.default.getTemplateContent(node);
     if (content) {
       dom5.nodeWalk(content, (n) => {
         visitor(n);
         return false;
       });
     }
   }
 };
開發者ID:asdfg9822,項目名稱:polymer-analyzer,代碼行數:36,代碼來源:html-style-scanner.ts

示例7: _addSharedImportsToShell

  _addSharedImportsToShell(bundles: Map<string, string[]>): string {
    console.assert(this.shell != null);
    let shellUrl = this.urlFromPath(this.shell);
    let shellDeps = bundles.get(shellUrl)
        .map((d) => path.relative(path.dirname(shellUrl), d));

    let file = this.analyzer.getFile(this.shell);
    console.assert(file != null);
    let contents = file.contents.toString();
    let doc = dom5.parse(contents);
    let imports = dom5.queryAll(doc, dom5.predicates.AND(
      dom5.predicates.hasTagName('link'),
      dom5.predicates.hasAttrValue('rel', 'import')
    ));

    // Remove all imports that are in the shared deps list so that we prefer
    // the ordering or shared deps. Any imports left should be independent of
    // ordering of shared deps.
    let shellDepsSet = new Set(shellDeps);
    for (let _import of imports) {
      if (shellDepsSet.has(dom5.getAttribute(_import, 'href'))) {
        dom5.remove(_import);
      }
    }

    // Append all shared imports to the end of <head>
    let head = dom5.query(doc, dom5.predicates.hasTagName('head'));
    for (let dep of shellDeps) {
      let newImport = dom5.constructors.element('link');
      dom5.setAttribute(newImport, 'rel', 'import');
      dom5.setAttribute(newImport, 'href', dep);
      dom5.append(head, newImport);
    }
    let newContents = dom5.serialize(doc);
    return newContents;
  }
開發者ID:honzalo,項目名稱:polymer-cli,代碼行數:36,代碼來源:bundle.ts

示例8:

 (domModule) =>
     [dom5.getAttribute(domModule, 'id'),
      dom5.getAttribute(domModule, 'assetpath')]);
開發者ID:Polymer,項目名稱:tools,代碼行數:3,代碼來源:bundler_test.ts

示例9: return

 return (el) => {
   const attrValue = dom5.getAttribute(el, selector.name);
   return attrValue != null && attrValue.includes(selector.value);
 };
開發者ID:asdfg9822,項目名稱:polymer-linter,代碼行數:4,代碼來源:util.ts


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