📄 kjs_html.cpp
字号:
else if (p == "height") return getString(iFrame.height()); else if (p == "longDesc") return getString(iFrame.longDesc()); else if (p == "marginHeight") return getString(iFrame.marginHeight()); else if (p == "marginWidth") return getString(iFrame.marginWidth()); else if (p == "name") return getString(iFrame.name()); else if (p == "scrolling") return getString(iFrame.scrolling()); else if (p == "src") return getString(iFrame.src()); else if (p == "width") return getString(iFrame.width());// else if (p == "contentDocument") // new for DOM2 - not yet in khtml// return getDOMNode(iFrame.contentDocument); // type Document } break; } // generic properties if (p == "id") return getString(element.id()); else if (p == "title") return getString(element.title()); else if (p == "lang") return getString(element.lang()); else if (p == "dir") return getString(element.dir()); else if (p == "className") // ### isn't this "class" in the HTML spec? return getString(element.className()); else if ( p == "innerHTML") return getString(element.innerHTML()); else if ( p == "innerText") return getString(element.innerText()); // ### what about style? or is this used instead for DOM2 stylesheets? else return DOMElement::tryGet(p);}bool KJS::HTMLElement::hasProperty(const UString &p, bool recursive) const{ KJSO tmp = tryGet(p); if (tmp.isDefined()) return true; return recursive && DOMElement::hasProperty(p, true);}String KJS::HTMLElement::toString() const{ if (node.elementId() == ID_A) return UString(static_cast<const DOM::HTMLAnchorElement&>(node).href()); else return DOMElement::toString();}List *KJS::HTMLElement::eventHandlerScope() const{ DOM::HTMLElement element = static_cast<DOM::HTMLElement>(node); List *scope = new List(); scope->append(getDOMNode(element.ownerDocument())); DOM::Node form = element.parentNode(); while (!form.isNull() && form.elementId() != ID_FORM) form = form.parentNode(); if (!form.isNull()) scope->append(getDOMNode(form)); scope->append(getDOMNode(element)); return scope;}Completion KJS::HTMLElementFunction::tryExecute(const List &args){ KJSO result; switch (element.elementId()) { case ID_FORM: { DOM::HTMLFormElement form = element; if (id == Submit) { form.submit(); result = Undefined(); } else if (id == Reset) { form.reset(); result = Undefined(); } } break; case ID_SELECT: { DOM::HTMLSelectElement select = element; if (id == Add) { select.add(KJS::toNode(args[0]),KJS::toNode(args[1])); result = Undefined(); } else if (id == Remove) { select.remove(args[0].toNumber().intValue()); result = Undefined(); } else if (id == Blur) { select.blur(); result = Undefined(); } else if (id == Focus) { select.focus(); result = Undefined(); } } break; case ID_INPUT: { DOM::HTMLInputElement input = element; if (id == Blur) { input.blur(); result = Undefined(); } else if (id == Focus) { input.focus(); result = Undefined(); } else if (id == Select) { input.select(); result = Undefined(); } else if (id == Click) { input.click(); result = Undefined(); } } break; case ID_TEXTAREA: { DOM::HTMLTextAreaElement textarea = element; if (id == Blur) { textarea.blur(); result = Undefined(); } else if (id == Focus) { textarea.focus(); result = Undefined(); } else if (id == Select) { textarea.select(); result = Undefined(); } } break; case ID_A: { DOM::HTMLAnchorElement anchor = element; if (id == Blur) { anchor.blur(); result = Undefined(); } else if (id == Focus) { anchor.focus(); result = Undefined(); } } break; case ID_TABLE: { DOM::HTMLTableElement table = element; if (id == CreateTHead) result = getDOMNode(table.createTHead()); else if (id == DeleteTHead) { table.deleteTHead(); result = Undefined(); } else if (id == CreateTFoot) result = getDOMNode(table.createTFoot()); else if (id == DeleteTFoot) { table.deleteTFoot(); result = Undefined(); } else if (id == CreateCaption) result = getDOMNode(table.createCaption()); else if (id == DeleteCaption) { table.deleteCaption(); result = Undefined(); } else if (id == InsertRow) result = getDOMNode(table.insertRow(args[0].toNumber().intValue())); else if (id == DeleteRow) { table.deleteRow(args[0].toNumber().intValue()); result = Undefined(); } } break; case ID_THEAD: case ID_TBODY: case ID_TFOOT: { DOM::HTMLTableSectionElement tableSection = element; if (id == InsertRow) result = getDOMNode(tableSection.insertRow(args[0].toNumber().intValue())); else if (id == DeleteRow) { tableSection.deleteRow(args[0].toInt32()); result = Undefined(); } } break; case ID_TR: { DOM::HTMLTableRowElement tableRow = element; if (id == InsertCell) result = getDOMNode(tableRow.insertCell(args[0].toNumber().intValue())); else if (id == DeleteCell) { tableRow.deleteCell(args[0].toInt32()); result = Undefined(); } } break; } return Completion(ReturnValue, result);}void KJS::HTMLElement::tryPut(const UString &p, const KJSO& v){ DOM::DOMString str = v.isA(NullType) ? DOM::DOMString(0) : v.toString().value().string(); DOM::Node n = (new DOMNode(KJS::toNode(v)))->toNode(); DOM::HTMLElement element = static_cast<DOM::HTMLElement>(node); //kdDebug() << "KJS::HTMLElement::tryPut " << p.qstring() << " id=" << element.elementId() << endl; switch (element.elementId()) { case ID_HTML: { DOM::HTMLHtmlElement html = element; if (p == "version") { html.setVersion(str); return; } } break; case ID_HEAD: { DOM::HTMLHeadElement head = element; if (p == "profile") { head.setProfile(str); return; } } break; case ID_LINK: { DOM::HTMLLinkElement link = element; if (p == "disabled") { link.setDisabled(v.toBoolean().value()); return; } else if (p == "charset") { link.setCharset(str); return; } else if (p == "href") { link.setHref(str); return; } else if (p == "hreflang") { link.setHreflang(str); return; } else if (p == "media") { link.setMedia(str); return; } else if (p == "rel") { link.setRel(str); return; } else if (p == "rev") { link.setRev(str); return; } else if (p == "target") { link.setTarget(str); return; } else if (p == "type") { link.setType(str); return; } } break; case ID_TITLE: { DOM::HTMLTitleElement title = element; if (p == "text") { title.setText(str); return; } } break; case ID_META: { DOM::HTMLMetaElement meta = element; if (p == "content") { meta.setContent(str); return; } else if (p == "httpEquiv") { meta.setHttpEquiv(str); return; } else if (p == "name") { meta.setName(str); return; } else if (p == "scheme") { meta.setScheme(str); return; } } break; case ID_BASE: { DOM::HTMLBaseElement base = element; if (p == "href") { base.setHref(str); return; } else if (p == "target") { base.setTarget(str); return; } } break; case ID_ISINDEX: { DOM::HTMLIsIndexElement isindex = element; // read-only: form if (p == "prompt") { isindex.setPrompt(str); return; } } break; case ID_STYLE: { DOM::HTMLStyleElement style = element; if (p == "disabled") { style.setDisabled(v.toBoolean().value()); return; } else if (p == "media") { style.setMedia(str); return; } else if (p == "type") { style.setType(str); return; } } break; case ID_BODY: { DOM::HTMLBodyElement body = element; if (p == "aLink") { body.setALink(str); return; } else if (p == "background") { body.setBackground(str); return; } else if (p == "bgColor") { body.setBgColor(str); return; } else if (p == "link") { body.setLink(str); return; } else if (p == "text") { body.setText(str); return; } else if (p == "vLink") { body.setVLink(str); return; } } break; case ID_FORM: { DOM::HTMLFormElement form = element; // read-only: elements // read-only: length if (p == "name") { form.setName(str); return; } else if (p == "acceptCharset") { form.setAcceptCharset(str); return; } else if (p == "action") { form.setAction(Window::retrieveActive()->part()->completeURL( str.string() ).url()); return; } else if (p == "enctype") { form.setEnctype(str); return; } else if (p == "method") { form.setMethod(str); return; } else if (p == "target") { form.setTarget(str); return; } } break;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -