本文整理汇总了C++中HTMLMetaElement类的典型用法代码示例。如果您正苦于以下问题:C++ HTMLMetaElement类的具体用法?C++ HTMLMetaElement怎么用?C++ HTMLMetaElement使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了HTMLMetaElement类的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: switch
void JSHTMLMetaElement::putValueProperty(ExecState* exec, int token, JSValue* value)
{
switch (token) {
case ContentAttrNum: {
HTMLMetaElement* imp = static_cast<HTMLMetaElement*>(impl());
imp->setContent(valueToStringWithNullCheck(exec, value));
break;
}
case HttpEquivAttrNum: {
HTMLMetaElement* imp = static_cast<HTMLMetaElement*>(impl());
imp->setHttpEquiv(valueToStringWithNullCheck(exec, value));
break;
}
case NameAttrNum: {
HTMLMetaElement* imp = static_cast<HTMLMetaElement*>(impl());
imp->setName(valueToStringWithNullCheck(exec, value));
break;
}
case SchemeAttrNum: {
HTMLMetaElement* imp = static_cast<HTMLMetaElement*>(impl());
imp->setScheme(valueToStringWithNullCheck(exec, value));
break;
}
}
}
示例2: metaData
/*!
\since 4.5
\brief Returns the meta data in this frame as a QMultiMap
The meta data consists of the name and content attributes of the
of the \c{<meta>} tags in the HTML document.
For example:
\code
<html>
<head>
<meta name="description" content="This document is a tutorial about Qt development">
<meta name="keywords" content="Qt, WebKit, Programming">
</head>
...
</html>
\endcode
Given the above HTML code the metaData() function will return a map with two entries:
\table
\header \o Key
\o Value
\row \o "description"
\o "This document is a tutorial about Qt development"
\row \o "keywords"
\o "Qt, WebKit, Programming"
\endtable
This function returns a multi map to support multiple meta tags with the same attribute name.
*/
QMultiMap<QString, QString> QWebFrame::metaData() const
{
if (!d->frame->document())
return QMap<QString, QString>();
QMultiMap<QString, QString> map;
Document* doc = d->frame->document();
RefPtr<NodeList> list = doc->getElementsByTagName("meta");
unsigned len = list->length();
for (unsigned i = 0; i < len; i++) {
HTMLMetaElement* meta = static_cast<HTMLMetaElement*>(list->item(i));
map.insert(meta->name(), meta->content());
}
return map;
}
示例3: setJSHTMLMetaElementScheme
void setJSHTMLMetaElementScheme(ExecState* exec, JSObject* thisObject, JSValue value)
{
JSHTMLMetaElement* castedThisObj = static_cast<JSHTMLMetaElement*>(thisObject);
HTMLMetaElement* imp = static_cast<HTMLMetaElement*>(castedThisObj->impl());
imp->setScheme(valueToStringWithNullCheck(exec, value));
}
示例4: didFinishOrFailLoading
void FrameLoaderClientBlackBerry::dispatchDidFinishLoad()
{
didFinishOrFailLoading(ResourceError());
if (m_webPagePrivate->m_dumpRenderTree)
m_webPagePrivate->m_dumpRenderTree->didFinishLoadForFrame(m_frame);
if (!isMainFrame() || m_webPagePrivate->m_webSettings->isEmailMode()
|| !m_frame->document() || !m_frame->document()->head())
return;
HTMLHeadElement* headElement = m_frame->document()->head();
// FIXME: Handle NOSCRIPT special case?
// Process document metadata.
RefPtr<NodeList> nodeList = headElement->getElementsByTagName(HTMLNames::metaTag.localName());
unsigned int size = nodeList->length();
ScopeArray<WebString> headers;
// This may allocate more space than needed since not all meta elements will be http-equiv.
headers.reset(new WebString[2 * size]);
unsigned headersLength = 0;
for (unsigned i = 0; i < size; ++i) {
HTMLMetaElement* metaElement = static_cast<HTMLMetaElement*>(nodeList->item(i));
if (WTF::equalIgnoringCase(metaElement->name(), "apple-mobile-web-app-capable")
&& WTF::equalIgnoringCase(metaElement->content().stripWhiteSpace(), "yes"))
m_webPagePrivate->m_client->setWebAppCapable();
else {
String httpEquiv = metaElement->httpEquiv().stripWhiteSpace();
String content = metaElement->content().stripWhiteSpace();
if (!httpEquiv.isNull() && !content.isNull()) {
headers[headersLength++] = httpEquiv;
headers[headersLength++] = content;
}
}
}
if (headersLength > 0)
m_webPagePrivate->m_client->setMetaHeaders(headers, headersLength);
nodeList = headElement->getElementsByTagName(HTMLNames::linkTag.localName());
size = nodeList->length();
for (unsigned i = 0; i < size; ++i) {
HTMLLinkElement* linkElement = static_cast<HTMLLinkElement*>(nodeList->item(i));
String href = linkElement->href().string();
if (!href.isEmpty()) {
String title = linkElement->title();
if (WTF::equalIgnoringCase(linkElement->rel(), "apple-touch-icon"))
m_webPagePrivate->m_client->setLargeIcon(href.latin1().data());
else if (WTF::equalIgnoringCase(linkElement->rel(), "search")) {
if (WTF::equalIgnoringCase(linkElement->type(), "application/opensearchdescription+xml"))
m_webPagePrivate->m_client->setSearchProviderDetails(title.utf8().data(), href.utf8().data());
} else if (WTF::equalIgnoringCase(linkElement->rel(), "alternate")
&& (WTF::equalIgnoringCase(linkElement->type(), "application/rss+xml")
|| WTF::equalIgnoringCase(linkElement->type(), "application/atom+xml")))
m_webPagePrivate->m_client->setAlternateFeedDetails(title.utf8().data(), href.utf8().data());
}
}
#if ENABLE(BLACKBERRY_CREDENTIAL_PERSIST)
if (!m_webPagePrivate->m_webSettings->isPrivateBrowsingEnabled())
credentialManager().autofillPasswordForms(m_frame->document()->forms());
#endif
}
示例5: DCHECK
void MediaDocumentParser::createDocumentStructure() {
DCHECK(document());
HTMLHtmlElement* rootElement = HTMLHtmlElement::create(*document());
document()->appendChild(rootElement);
rootElement->insertedByParser();
if (isDetached())
return; // runScriptsAtDocumentElementAvailable can detach the frame.
HTMLHeadElement* head = HTMLHeadElement::create(*document());
HTMLMetaElement* meta = HTMLMetaElement::create(*document());
meta->setAttribute(nameAttr, "viewport");
meta->setAttribute(contentAttr, "width=device-width");
head->appendChild(meta);
HTMLVideoElement* media = HTMLVideoElement::create(*document());
media->setAttribute(controlsAttr, "");
media->setAttribute(autoplayAttr, "");
media->setAttribute(nameAttr, "media");
HTMLSourceElement* source = HTMLSourceElement::create(*document());
source->setSrc(document()->url());
if (DocumentLoader* loader = document()->loader())
source->setType(loader->responseMIMEType());
media->appendChild(source);
HTMLBodyElement* body = HTMLBodyElement::create(*document());
body->setAttribute(styleAttr, "margin: 0px;");
document()->willInsertBody();
HTMLDivElement* div = HTMLDivElement::create(*document());
// Style sheets for media controls are lazily loaded until a media element is
// encountered. As a result, elements encountered before the media element
// will not get the right style at first if we put the styles in
// mediacontrols.css. To solve this issue, set the styles inline so that they
// will be applied when the page loads. See w3c example on how to centering
// an element: https://www.w3.org/Style/Examples/007/center.en.html
div->setAttribute(styleAttr,
"display: flex;"
"flex-direction: column;"
"justify-content: center;"
"align-items: center;"
"min-height: min-content;"
"height: 100%;");
HTMLContentElement* content = HTMLContentElement::create(*document());
div->appendChild(content);
if (RuntimeEnabledFeatures::mediaDocumentDownloadButtonEnabled()) {
HTMLAnchorElement* anchor = HTMLAnchorElement::create(*document());
anchor->setAttribute(downloadAttr, "");
anchor->setURL(document()->url());
anchor->setTextContent(
document()
->getCachedLocale(document()->contentLanguage())
.queryString(WebLocalizedString::DownloadButtonLabel)
.upper());
// Using CSS style according to Android material design.
anchor->setAttribute(
styleAttr,
"display: inline-block;"
"margin-top: 32px;"
"padding: 0 16px 0 16px;"
"height: 36px;"
"background: #000000;"
"-webkit-tap-highlight-color: rgba(255, 255, 255, 0.12);"
"font-family: Roboto;"
"font-size: 14px;"
"border-radius: 5px;"
"color: white;"
"font-weight: 500;"
"text-decoration: none;"
"line-height: 36px;");
EventListener* listener = MediaDownloadEventListener::create();
anchor->addEventListener(EventTypeNames::click, listener, false);
HTMLDivElement* buttonContainer = HTMLDivElement::create(*document());
buttonContainer->setAttribute(styleAttr,
"text-align: center;"
"height: 0;"
"flex: none");
buttonContainer->appendChild(anchor);
div->appendChild(buttonContainer);
recordDownloadMetric(MediaDocumentDownloadButtonShown);
}
// According to
// https://html.spec.whatwg.org/multipage/browsers.html#read-media,
// MediaDocument should have a single child which is the video element. Use
// shadow root to hide all the elements we added here.
ShadowRoot& shadowRoot = body->ensureUserAgentShadowRoot();
shadowRoot.appendChild(div);
body->appendChild(media);
rootElement->appendChild(head);
rootElement->appendChild(body);
m_didBuildDocumentStructure = true;
}