本文整理匯總了TypeScript中dom5.hasAttribute函數的典型用法代碼示例。如果您正苦於以下問題:TypeScript hasAttribute函數的具體用法?TypeScript hasAttribute怎麽用?TypeScript hasAttribute使用的例子?那麽, 這裏精選的函數代碼示例或許可以為您提供幫助。
在下文中一共展示了hasAttribute函數的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。
示例1: test
test('Base tag emulation should not leak to other imports', async () => {
const {ast: doc} = await bundle('base.html');
const clickMe = dom5.query(doc, preds.hasTextValue('CLICK ME'));
assert.ok(clickMe);
// The base target from `test/html/imports/base.html` should apply to
// the anchor tag in it.
assert.equal(dom5.getAttribute(clickMe!, 'target'), 'foo-frame');
const doNotClickMe =
dom5.query(doc, preds.hasTextValue('DO NOT CLICK ME'));
assert.ok(doNotClickMe);
// The base target from `test/html/imports/base.html` should NOT apply
// to the anchor tag in `test/html/imports/base-foo/sub-base.html`
assert.isFalse(dom5.hasAttribute(doNotClickMe!, 'target'));
});
示例2: _inlineStylesheet
/**
* Inlines the contents of the stylesheet returned by the link tag's href
* URL into a style tag and removes the link tag.
*/
private async _inlineStylesheet(cssLink: ASTNode) {
const stylesheetHref = dom5.getAttribute(cssLink, 'href')!;
const resolvedImportUrl = this.bundler.analyzer.urlResolver.resolve(
this.assignedBundle.url, stylesheetHref as FileRelativeUrl);
if (resolvedImportUrl === undefined) {
return;
}
if (this.bundler.excludes.some(
(e) => resolvedImportUrl === e ||
resolvedImportUrl.startsWith(ensureTrailingSlash(e)))) {
return;
}
const stylesheetImport = // HACK(usergenic): clang-format workaround
find(
this.document.getFeatures(
{kind: 'html-style', imported: true, externalPackages: true}),
(i) => i.document !== undefined &&
i.document.url === resolvedImportUrl) ||
find(
this.document.getFeatures(
{kind: 'css-import', imported: true, externalPackages: true}),
(i) => i.document !== undefined &&
i.document.url === resolvedImportUrl);
if (stylesheetImport === undefined ||
stylesheetImport.document === undefined) {
this.assignedBundle.bundle.missingImports.add(resolvedImportUrl);
return;
}
const stylesheetContent = stylesheetImport.document.parsedDocument.contents;
const media = dom5.getAttribute(cssLink, 'media');
let newBaseUrl = this.assignedBundle.url;
// If the css link we are about to inline is inside of a dom-module, the
// new base URL must be calculated using the assetpath of the dom-module
// if present, since Polymer will honor assetpath when resolving URLs in
// `<style>` tags, even inside of `<template>` tags.
const parentDomModule =
findAncestor(cssLink, dom5.predicates.hasTagName('dom-module'));
if (!this.bundler.rewriteUrlsInTemplates && parentDomModule &&
dom5.hasAttribute(parentDomModule, 'assetpath')) {
const assetPath = (dom5.getAttribute(parentDomModule, 'assetpath') ||
'') as FileRelativeUrl;
if (assetPath) {
newBaseUrl =
this.bundler.analyzer.urlResolver.resolve(newBaseUrl, assetPath)!;
}
}
const resolvedStylesheetContent = this._rewriteCssTextBaseUrl(
stylesheetContent, resolvedImportUrl, newBaseUrl);
const styleNode = dom5.constructors.element('style');
if (media) {
dom5.setAttribute(styleNode, 'media', media);
}
dom5.replace(cssLink, styleNode);
dom5.setTextContent(styleNode, resolvedStylesheetContent);
// Record that the inlining took place.
this.assignedBundle.bundle.inlinedStyles.add(resolvedImportUrl);
return styleNode;
}