本文整理汇总了C++中HTMLElement类的典型用法代码示例。如果您正苦于以下问题:C++ HTMLElement类的具体用法?C++ HTMLElement怎么用?C++ HTMLElement使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了HTMLElement类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: element
void TextFieldInputType::updatePlaceholderText()
{
if (!supportsPlaceholder())
return;
HTMLElement* placeholder = element().placeholderElement();
String placeholderText = element().strippedPlaceholder();
if (placeholderText.isEmpty()) {
if (placeholder)
placeholder->remove(ASSERT_NO_EXCEPTION);
return;
}
if (!placeholder) {
RefPtrWillBeRawPtr<HTMLElement> newElement = HTMLDivElement::create(element().document());
placeholder = newElement.get();
placeholder->setShadowPseudoId(AtomicString("-webkit-input-placeholder", AtomicString::ConstructFromLiteral));
placeholder->setAttribute(idAttr, ShadowElementNames::placeholder());
Element* container = containerElement();
Node* previous = container ? container : element().innerEditorElement();
previous->parentNode()->insertBefore(placeholder, previous->nextSibling());
ASSERT_WITH_SECURITY_IMPLICATION(placeholder->parentNode() == previous->parentNode());
}
placeholder->setTextContent(placeholderText);
}
示例2: body
bool HTMLDocument::isFrameSet() const
{
HTMLElement* bodyElement = body();
return bodyElement && bodyElement->renderer() && bodyElement->hasTagName(framesetTag);
}
示例3: documentEventHandlerAttribute
JSC::JSValue documentEventHandlerAttribute(HTMLElement& element, const AtomicString& eventType)
{
auto& document = element.document();
return eventHandlerAttribute(document.getAttributeEventListener(eventType), document);
}
示例4: add
void HTMLSelectElement::add( const HTMLElement &element, const HTMLElement &before )
{
if(impl) static_cast<HTMLSelectElementImpl*>(impl)->add(
static_cast<HTMLElementImpl *>(element.handle()), static_cast<HTMLElementImpl *>(before.handle()) );
}
示例5: nameShouldBeVisibleInDocumentAll
static inline bool nameShouldBeVisibleInDocumentAll(const HTMLElement& element)
{
// http://www.whatwg.org/specs/web-apps/current-work/multipage/common-dom-interfaces.html#dom-htmlallcollection-nameditem:
// The document.all collection returns only certain types of elements by name,
// although it returns any type of element by id.
return element.hasLocalName(aTag)
|| element.hasLocalName(appletTag)
|| element.hasLocalName(areaTag)
|| element.hasLocalName(embedTag)
|| element.hasLocalName(formTag)
|| element.hasLocalName(frameTag)
|| element.hasLocalName(framesetTag)
|| element.hasLocalName(iframeTag)
|| element.hasLocalName(imgTag)
|| element.hasLocalName(inputTag)
|| element.hasLocalName(objectTag)
|| element.hasLocalName(selectTag);
}
示例6: toHTMLElement
void FormAssociatedElement::insertedIntoDocument()
{
HTMLElement* element = toHTMLElement(this);
if (element->fastHasAttribute(formAttr))
element->document()->registerFormElementWithFormAttribute(this);
}
示例7: htmlBodyElement
HTMLBodyElement* HTMLDocument::htmlBodyElement() const
{
HTMLElement* body = this->body();
return (body && body->hasTagName(bodyTag)) ? toHTMLBodyElement(body) : 0;
}
示例8: setJSHTMLElementClassName
void setJSHTMLElementClassName(ExecState* exec, JSObject* thisObject, JSValue value)
{
JSHTMLElement* castedThis = static_cast<JSHTMLElement*>(thisObject);
HTMLElement* imp = static_cast<HTMLElement*>(castedThis->impl());
imp->setAttribute(WebCore::HTMLNames::classAttr, valueToStringWithNullCheck(exec, value));
}
示例9: if
void RenderPartObject::updateWidget(bool onlyCreateNonNetscapePlugins)
{
String url;
String serviceType;
Vector<String> paramNames;
Vector<String> paramValues;
Frame* frame = m_view->frame();
if (element()->hasTagName(objectTag)) {
HTMLObjectElement* o = static_cast<HTMLObjectElement*>(element());
o->setNeedWidgetUpdate(false);
if (!o->isFinishedParsingChildren())
return;
// Check for a child EMBED tag.
HTMLEmbedElement* embed = 0;
for (Node* child = o->firstChild(); child;) {
if (child->hasTagName(embedTag)) {
embed = static_cast<HTMLEmbedElement*>(child);
break;
} else if (child->hasTagName(objectTag))
child = child->nextSibling(); // Don't descend into nested OBJECT tags
else
child = child->traverseNextNode(o); // Otherwise descend (EMBEDs may be inside COMMENT tags)
}
// Use the attributes from the EMBED tag instead of the OBJECT tag including WIDTH and HEIGHT.
HTMLElement *embedOrObject;
if (embed) {
embedOrObject = (HTMLElement *)embed;
url = embed->url();
serviceType = embed->serviceType();
} else
embedOrObject = (HTMLElement *)o;
// If there was no URL or type defined in EMBED, try the OBJECT tag.
if (url.isEmpty())
url = o->m_url;
if (serviceType.isEmpty())
serviceType = o->m_serviceType;
HashSet<StringImpl*, CaseFoldingHash> uniqueParamNames;
// Scan the PARAM children.
// Get the URL and type from the params if we don't already have them.
// Get the attributes from the params if there is no EMBED tag.
Node *child = o->firstChild();
while (child && (url.isEmpty() || serviceType.isEmpty() || !embed)) {
if (child->hasTagName(paramTag)) {
HTMLParamElement* p = static_cast<HTMLParamElement*>(child);
String name = p->name().lower();
if (url.isEmpty() && (name == "src" || name == "movie" || name == "code" || name == "url"))
url = p->value();
if (serviceType.isEmpty() && name == "type") {
serviceType = p->value();
int pos = serviceType.find(";");
if (pos != -1)
serviceType = serviceType.left(pos);
}
if (!embed && !name.isEmpty()) {
uniqueParamNames.add(p->name().impl());
paramNames.append(p->name());
paramValues.append(p->value());
}
}
child = child->nextSibling();
}
// When OBJECT is used for an applet via Sun's Java plugin, the CODEBASE attribute in the tag
// points to the Java plugin itself (an ActiveX component) while the actual applet CODEBASE is
// in a PARAM tag. See <http://java.sun.com/products/plugin/1.2/docs/tags.html>. This means
// we have to explicitly suppress the tag's CODEBASE attribute if there is none in a PARAM,
// else our Java plugin will misinterpret it. [4004531]
String codebase;
if (!embed && MIMETypeRegistry::isJavaAppletMIMEType(serviceType)) {
codebase = "codebase";
uniqueParamNames.add(codebase.impl()); // pretend we found it in a PARAM already
}
// Turn the attributes of either the EMBED tag or OBJECT tag into arrays, but don't override PARAM values.
NamedAttrMap* attributes = embedOrObject->attributes();
if (attributes) {
for (unsigned i = 0; i < attributes->length(); ++i) {
Attribute* it = attributes->attributeItem(i);
const AtomicString& name = it->name().localName();
if (embed || !uniqueParamNames.contains(name.impl())) {
paramNames.append(name.string());
paramValues.append(it->value().string());
}
}
}
// If we still don't have a type, try to map from a specific CLASSID to a type.
if (serviceType.isEmpty() && !o->m_classId.isEmpty())
mapClassIdToServiceType(o->m_classId, serviceType);
if (!isURLAllowed(document(), url))
return;
//.........这里部分代码省略.........
示例10: isPluginElement
static inline bool isPluginElement(HTMLElement& element)
{
return element.hasTagName(objectTag) || element.hasTagName(embedTag) || element.hasTagName(appletTag);
}
示例11: endingSelection
void InsertListCommand::doApply()
{
if (endingSelection().isNone())
return;
if (!endingSelection().rootEditableElement())
return;
VisiblePosition visibleEnd = endingSelection().visibleEnd();
VisiblePosition visibleStart = endingSelection().visibleStart();
// When a selection ends at the start of a paragraph, we rarely paint
// the selection gap before that paragraph, because there often is no gap.
// In a case like this, it's not obvious to the user that the selection
// ends "inside" that paragraph, so it would be confusing if InsertUn{Ordered}List
// operated on that paragraph.
// FIXME: We paint the gap before some paragraphs that are indented with left
// margin/padding, but not others. We should make the gap painting more consistent and
// then use a left margin/padding rule here.
if (visibleEnd != visibleStart && isStartOfParagraph(visibleEnd))
setEndingSelection(VisibleSelection(visibleStart, visibleEnd.previous(true)));
if (endingSelection().isRange() && modifyRange())
return;
// FIXME: This will produce unexpected results for a selection that starts just before a
// table and ends inside the first cell, selectionForParagraphIteration should probably
// be renamed and deployed inside setEndingSelection().
Node* selectionNode = endingSelection().start().node();
const QualifiedName listTag = (m_type == OrderedList) ? olTag : ulTag;
Node* listChildNode = enclosingListChild(selectionNode);
bool switchListType = false;
if (listChildNode) {
// Remove the list chlild.
HTMLElement* listNode = enclosingList(listChildNode);
if (!listNode)
listNode = fixOrphanedListChild(listChildNode);
if (!listNode->hasTagName(listTag))
// listChildNode will be removed from the list and a list of type m_type will be created.
switchListType = true;
Node* nextListChild;
Node* previousListChild;
VisiblePosition start;
VisiblePosition end;
if (listChildNode->hasTagName(liTag)) {
start = firstDeepEditingPositionForNode(listChildNode);
end = lastDeepEditingPositionForNode(listChildNode);
nextListChild = listChildNode->nextSibling();
previousListChild = listChildNode->previousSibling();
} else {
// A paragraph is visually a list item minus a list marker. The paragraph will be moved.
start = startOfParagraph(endingSelection().visibleStart());
end = endOfParagraph(endingSelection().visibleEnd());
nextListChild = enclosingListChild(end.next().deepEquivalent().node());
ASSERT(nextListChild != listChildNode);
if (enclosingList(nextListChild) != listNode)
nextListChild = 0;
previousListChild = enclosingListChild(start.previous().deepEquivalent().node());
ASSERT(previousListChild != listChildNode);
if (enclosingList(previousListChild) != listNode)
previousListChild = 0;
}
// When removing a list, we must always create a placeholder to act as a point of insertion
// for the list content being removed.
RefPtr<Element> placeholder = createBreakElement(document());
RefPtr<Element> nodeToInsert = placeholder;
// If the content of the list item will be moved into another list, put it in a list item
// so that we don't create an orphaned list child.
if (enclosingList(listNode)) {
nodeToInsert = createListItemElement(document());
appendNode(placeholder, nodeToInsert);
}
if (nextListChild && previousListChild) {
// We want to pull listChildNode out of listNode, and place it before nextListChild
// and after previousListChild, so we split listNode and insert it between the two lists.
// But to split listNode, we must first split ancestors of listChildNode between it and listNode,
// if any exist.
// FIXME: We appear to split at nextListChild as opposed to listChildNode so that when we remove
// listChildNode below in moveParagraphs, previousListChild will be removed along with it if it is
// unrendered. But we ought to remove nextListChild too, if it is unrendered.
splitElement(listNode, splitTreeToNode(nextListChild, listNode));
insertNodeBefore(nodeToInsert, listNode);
} else if (nextListChild || listChildNode->parentNode() != listNode) {
// Just because listChildNode has no previousListChild doesn't mean there isn't any content
// in listNode that comes before listChildNode, as listChildNode could have ancestors
// between it and listNode. So, we split up to listNode before inserting the placeholder
// where we're about to move listChildNode to.
if (listChildNode->parentNode() != listNode)
splitElement(listNode, splitTreeToNode(listChildNode, listNode).get());
insertNodeBefore(nodeToInsert, listNode);
} else
insertNodeAfter(nodeToInsert, listNode);
VisiblePosition insertionPoint = VisiblePosition(Position(placeholder.get(), 0));
moveParagraphs(start, end, insertionPoint, true);
}
if (!listChildNode || switchListType || m_forceCreateList) {
// Create list.
VisiblePosition originalStart = endingSelection().visibleStart();
VisiblePosition start = startOfParagraph(originalStart);
//.........这里部分代码省略.........
示例12: setBody
void HTMLDocument::setBody(const HTMLElement &_body)
{
if (!impl) return;
((HTMLDocumentImpl *)impl)->setBody(static_cast<HTMLElementImpl *>(_body.handle()));
return;
}
示例13: toHTMLElement
void FormAssociatedElement::didMoveToNewDocument(Document* oldDocument)
{
HTMLElement* element = toHTMLElement(this);
if (oldDocument && element->fastHasAttribute(formAttr))
oldDocument->unregisterFormElementWithFormAttribute(this);
}
示例14: setJSHTMLElementTabIndex
void setJSHTMLElementTabIndex(ExecState* exec, JSObject* thisObject, JSValue value)
{
JSHTMLElement* castedThis = static_cast<JSHTMLElement*>(thisObject);
HTMLElement* imp = static_cast<HTMLElement*>(castedThis->impl());
imp->setTabIndex(value.toInt32(exec));
}
示例15: setJSHTMLElementHidden
void setJSHTMLElementHidden(ExecState* exec, JSObject* thisObject, JSValue value)
{
JSHTMLElement* castedThis = static_cast<JSHTMLElement*>(thisObject);
HTMLElement* imp = static_cast<HTMLElement*>(castedThis->impl());
imp->setBooleanAttribute(WebCore::HTMLNames::hiddenAttr, value.toBoolean(exec));
}