本文整理汇总了C++中HTMLOptionsCollection类的典型用法代码示例。如果您正苦于以下问题:C++ HTMLOptionsCollection类的具体用法?C++ HTMLOptionsCollection怎么用?C++ HTMLOptionsCollection使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了HTMLOptionsCollection类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: INC_STATS
v8::Handle<v8::Value> V8HTMLOptionsCollection::addCallback(const v8::Arguments& args)
{
INC_STATS("DOM.HTMLOptionsCollection.add()");
if (!V8HTMLOptionElement::HasInstance(args[0]))
return setDOMException(TYPE_MISMATCH_ERR, args.GetIsolate());
HTMLOptionsCollection* imp = V8HTMLOptionsCollection::toNative(args.Holder());
HTMLOptionElement* option = V8HTMLOptionElement::toNative(v8::Handle<v8::Object>(v8::Handle<v8::Object>::Cast(args[0])));
ExceptionCode ec = 0;
if (args.Length() < 2)
imp->add(option, ec);
else {
bool ok;
v8::TryCatch try_catch;
int index = toInt32(args[1], ok);
if (try_catch.HasCaught())
return v8::Undefined();
if (!ok)
ec = TYPE_MISMATCH_ERR;
else
imp->add(option, index, ec);
}
if (ec)
return setDOMException(ec, args.GetIsolate());
return v8::Undefined();
}
示例2: setDOMException
void V8HTMLOptionsCollection::addMethodCustom(const v8::FunctionCallbackInfo<v8::Value>& args)
{
if (!V8HTMLOptionElement::HasInstance(args[0], args.GetIsolate(), worldType(args.GetIsolate()))) {
setDOMException(TYPE_MISMATCH_ERR, args.GetIsolate());
return;
}
HTMLOptionsCollection* imp = V8HTMLOptionsCollection::toNative(args.Holder());
HTMLOptionElement* option = V8HTMLOptionElement::toNative(v8::Handle<v8::Object>(v8::Handle<v8::Object>::Cast(args[0])));
ExceptionCode ec = 0;
if (args.Length() < 2)
imp->add(option, ec);
else {
bool ok;
V8TRYCATCH_VOID(int, index, toInt32(args[1], ok));
if (!ok)
ec = TYPE_MISMATCH_ERR;
else
imp->add(option, index, ec);
}
if (!ec)
return;
setDOMException(ec, args.GetIsolate());
}
示例3: jsHTMLOptionsCollectionSelectedIndex
JSValue jsHTMLOptionsCollectionSelectedIndex(ExecState* exec, JSValue slotBase, const Identifier&)
{
JSHTMLOptionsCollection* castedThis = static_cast<JSHTMLOptionsCollection*>(asObject(slotBase));
UNUSED_PARAM(exec);
HTMLOptionsCollection* imp = static_cast<HTMLOptionsCollection*>(castedThis->impl());
JSValue result = jsNumber(imp->selectedIndex());
return result;
}
示例4: switch
JSValue* JSHTMLOptionsCollection::getValueProperty(ExecState* exec, int token) const
{
switch (token) {
case SelectedIndexAttrNum: {
HTMLOptionsCollection* imp = static_cast<HTMLOptionsCollection*>(impl());
return jsNumber(exec, imp->selectedIndex());
}
case LengthAttrNum: {
return length(exec);
}
}
return 0;
}
示例5: add
JSValue JSHTMLOptionsCollection::add(ExecState* exec)
{
HTMLOptionsCollection* imp = static_cast<HTMLOptionsCollection*>(impl());
HTMLOptionElement* option = toHTMLOptionElement(exec->argument(0));
ExceptionCode ec = 0;
if (exec->argumentCount() < 2)
imp->add(option, ec);
else {
int index = exec->argument(1).toInt32(exec);
if (exec->hadException())
return jsUndefined();
imp->add(option, index, ec);
}
setDOMException(exec, ec);
return jsUndefined();
}
示例6: setLength
void JSHTMLOptionsCollection::setLength(ExecState* exec, JSValue value)
{
HTMLOptionsCollection* imp = static_cast<HTMLOptionsCollection*>(impl());
ExceptionCode ec = 0;
unsigned newLength = 0;
double lengthValue = value.toNumber(exec);
if (!isnan(lengthValue) && !isinf(lengthValue)) {
if (lengthValue < 0.0)
ec = INDEX_SIZE_ERR;
else if (lengthValue > static_cast<double>(UINT_MAX))
newLength = UINT_MAX;
else
newLength = static_cast<unsigned>(lengthValue);
}
if (!ec)
imp->setLength(newLength, ec);
setDOMException(exec, ec);
}
示例7: if
void V8HTMLOptionsCollection::lengthAttrSetterCustom(v8::Local<v8::String> name, v8::Local<v8::Value> value, const v8::PropertyCallbackInfo<void>& info)
{
HTMLOptionsCollection* imp = V8HTMLOptionsCollection::toNative(info.Holder());
double v = value->NumberValue();
unsigned newLength = 0;
ExceptionCode ec = 0;
if (!std::isnan(v) && !std::isinf(v)) {
if (v < 0.0)
ec = INDEX_SIZE_ERR;
else if (v > static_cast<double>(UINT_MAX))
newLength = UINT_MAX;
else
newLength = static_cast<unsigned>(v);
}
if (!ec)
imp->setLength(newLength, ec);
setDOMException(ec, info.GetIsolate());
}
示例8: add
JSValue JSHTMLOptionsCollection::add(ExecState* exec, const ArgList& args)
{
HTMLOptionsCollection* imp = static_cast<HTMLOptionsCollection*>(impl());
HTMLOptionElement* option = toHTMLOptionElement(args.at(0));
ExceptionCode ec = 0;
if (args.size() < 2)
imp->add(option, ec);
else {
bool ok;
int index = args.at(1).toInt32(exec, ok);
if (exec->hadException())
return jsUndefined();
if (!ok)
ec = TYPE_MISMATCH_ERR;
else
imp->add(option, index, ec);
}
setDOMException(exec, ec);
return jsUndefined();
}
示例9: add
JSValue JSHTMLOptionsCollection::add(ExecState* exec)
{
HTMLOptionsCollection* imp = static_cast<HTMLOptionsCollection*>(impl());
HTMLOptionElement* option = toHTMLOptionElement(exec->argument(0));
ExceptionCode ec = 0;
if (exec->argumentCount() < 2)
imp->add(option, ec);
else {
bool ok;
int index = finiteInt32Value(exec->argument(1), exec, ok);
if (exec->hadException())
return jsUndefined();
if (!ok)
ec = TYPE_MISMATCH_ERR;
else
imp->add(option, index, ec);
}
setDOMException(exec, ec);
return jsUndefined();
}
示例10: GetSelect
int32_t
HTMLOptionElement::Index()
{
static int32_t defaultIndex = 0;
// Only select elements can contain a list of options.
HTMLSelectElement* selectElement = GetSelect();
if (!selectElement) {
return defaultIndex;
}
HTMLOptionsCollection* options = selectElement->GetOptions();
if (!options) {
return defaultIndex;
}
int32_t index = defaultIndex;
MOZ_ALWAYS_SUCCEEDS(options->GetOptionIndex(this, 0, true, &index));
return index;
}
示例11: exceptionState
void V8HTMLOptionsCollection::lengthAttributeSetterCustom(v8::Local<v8::Value> value, const v8::PropertyCallbackInfo<void>& info)
{
HTMLOptionsCollection* imp = V8HTMLOptionsCollection::toNative(info.Holder());
double v = value->NumberValue();
unsigned newLength = 0;
ExceptionState exceptionState(ExceptionState::SetterContext, "length", "HTMLOptionsCollection", info.Holder(), info.GetIsolate());
if (!std::isnan(v) && !std::isinf(v)) {
if (v < 0.0)
exceptionState.throwDOMException(IndexSizeError, "The value provided (" + String::number(v) + ") is negative. Lengths must be greater than or equal to 0.");
else if (v > static_cast<double>(UINT_MAX))
newLength = UINT_MAX;
else
newLength = static_cast<unsigned>(v);
}
if (exceptionState.throwIfNeeded())
return;
imp->setLength(newLength, exceptionState);
}
示例12: exceptionState
void V8HTMLOptionsCollection::addMethodCustom(const v8::FunctionCallbackInfo<v8::Value>& info)
{
ExceptionState exceptionState(ExceptionState::ExecutionContext, "add", "HTMLOptionsCollection", info.Holder(), info.GetIsolate());
if (!V8HTMLOptionElement::hasInstance(info[0], info.GetIsolate())) {
exceptionState.throwTypeError("The element provided was not an HTMLOptionElement.");
} else {
HTMLOptionsCollection* impl = V8HTMLOptionsCollection::toNative(info.Holder());
HTMLOptionElement* option = V8HTMLOptionElement::toNative(v8::Handle<v8::Object>(v8::Handle<v8::Object>::Cast(info[0])));
if (info.Length() < 2) {
impl->add(option, exceptionState);
} else {
int index = toInt32(info[1], exceptionState);
if (exceptionState.throwIfNeeded())
return;
impl->add(option, index, exceptionState);
}
}
exceptionState.throwIfNeeded();
}
示例13: setJSHTMLOptionsCollectionSelectedIndex
void setJSHTMLOptionsCollectionSelectedIndex(ExecState* exec, JSObject* thisObject, JSValue value)
{
JSHTMLOptionsCollection* castedThis = static_cast<JSHTMLOptionsCollection*>(thisObject);
HTMLOptionsCollection* imp = static_cast<HTMLOptionsCollection*>(castedThis->impl());
imp->setSelectedIndex(value.toInt32(exec));
}
示例14: remove
JSValue JSHTMLOptionsCollection::remove(ExecState* exec, const ArgList& args)
{
HTMLOptionsCollection* imp = static_cast<HTMLOptionsCollection*>(impl());
JSHTMLSelectElement* base = static_cast<JSHTMLSelectElement*>(asObject(toJS(exec, globalObject(), imp->base())));
return base->remove(exec, args);
}
示例15: indexSetter
void JSHTMLOptionsCollection::indexSetter(ExecState* exec, unsigned index, JSValue value)
{
HTMLOptionsCollection* imp = static_cast<HTMLOptionsCollection*>(impl());
HTMLSelectElement* base = static_cast<HTMLSelectElement*>(imp->base());
selectIndexSetter(base, exec, index, value);
}