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


TypeScript dom5.removeAttribute函數代碼示例

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


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

示例1: _inlineNonModuleScript

  /**
   * Inlines the contents of the document returned by the script tag's src URL
   * into the script tag content and removes the src attribute.
   */
  private async _inlineNonModuleScript(scriptTag: ASTNode) {
    const scriptHref = dom5.getAttribute(scriptTag, 'src')!;
    const resolvedImportUrl = this.bundler.analyzer.urlResolver.resolve(
        this.assignedBundle.url, scriptHref as FileRelativeUrl);
    if (resolvedImportUrl === undefined) {
      return;
    }
    if (this.bundler.excludes.some(
            (e) => resolvedImportUrl === e ||
                resolvedImportUrl.startsWith(ensureTrailingSlash(e)))) {
      return;
    }
    const scriptImport = find(
        this.document.getFeatures(
            {kind: 'html-script', imported: true, externalPackages: true}),
        (i) =>
            i.document !== undefined && i.document.url === resolvedImportUrl);
    if (scriptImport === undefined || scriptImport.document === undefined) {
      this.assignedBundle.bundle.missingImports.add(resolvedImportUrl);
      return;
    }

    let scriptContent = scriptImport.document.parsedDocument.contents;

    if (this.bundler.sourcemaps) {
      // it's easier to calculate offsets if the external script contents
      // don't start on the same line as the script tag. Offset the map
      // appropriately.
      scriptContent = await addOrUpdateSourcemapComment(
          this.bundler.analyzer,
          resolvedImportUrl,
          '\n' + scriptContent,
          -1,
          0,
          1,
          0);
    }

    dom5.removeAttribute(scriptTag, 'src');
    // Second argument 'true' tells encodeString to escape the <script> content.
    dom5.setTextContent(scriptTag, encodeString(scriptContent, true));

    // Record that the inlining took place.
    this.assignedBundle.bundle.inlinedScripts.add(resolvedImportUrl);

    return scriptContent;
  }
開發者ID:Polymer,項目名稱:vulcanize,代碼行數:51,代碼來源:html-bundler.ts

示例2: _rewriteExternalModuleScriptTagsAsImports

 /**
  * Replace all external module script tags:
  * `<script type="module" src="..."></script>`
  * with inline script tags containing import:
  * `<script type="module">import '...';</script>`
  * And these will be subsequently rolled up by call to
  * `this._rollupInlineModuleScripts()`.
  */
 private async _rewriteExternalModuleScriptTagsAsImports(ast: ASTNode) {
   for (const scriptTag of dom5.queryAll(ast, matchers.externalModuleScript)) {
     const scriptHref = dom5.getAttribute(scriptTag, 'src')!;
     const resolvedImportUrl = this.bundler.analyzer.urlResolver.resolve(
         this.document.parsedDocument.baseUrl, scriptHref as FileRelativeUrl);
     if (resolvedImportUrl === undefined) {
       return;
     }
     // We won't inline a module script if its not supposed to be in this
     // bundle.
     if (!this.assignedBundle.bundle.files.has(resolvedImportUrl)) {
       return;
     }
     const scriptContent = `import ${JSON.stringify(resolvedImportUrl)};`;
     dom5.removeAttribute(scriptTag, 'src');
     dom5.setTextContent(scriptTag, encodeString(scriptContent, true));
   }
 }
開發者ID:Polymer,項目名稱:tools,代碼行數:26,代碼來源:html-bundler.ts


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