(function(define, require, requireNative, requireAsync, exports, conso ترجمة - (function(define, require, requireNative, requireAsync, exports, conso العربية كيف أقول

(function(define, require, requireN

(function(define, require, requireNative, requireAsync, exports, console, privates,$Array, $Function, $JSON, $Object, $RegExp, $String, $Error) {'use strict';// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

var exceptionHandler = require('uncaught_exception_handler');
var eventNatives = requireNative('event_natives');
var logging = requireNative('logging');
var schemaRegistry = requireNative('schema_registry');
var sendRequest = require('sendRequest').sendRequest;
var utils = require('utils');
var validate = require('schemaUtils').validate;

// Schemas for the rule-style functions on the events API that
// only need to be generated occasionally, so populate them lazily.
var ruleFunctionSchemas = {
// These values are set lazily:
// addRules: {},
// getRules: {},
// removeRules: {}
};

// This function ensures that |ruleFunctionSchemas| is populated.
function ensureRuleSchemasLoaded() {
if (ruleFunctionSchemas.addRules)
return;
var eventsSchema = schemaRegistry.GetSchema("events");
var eventType = utils.lookup(eventsSchema.types, 'id', 'events.Event');

ruleFunctionSchemas.addRules =
utils.lookup(eventType.functions, 'name', 'addRules');
ruleFunctionSchemas.getRules =
utils.lookup(eventType.functions, 'name', 'getRules');
ruleFunctionSchemas.removeRules =
utils.lookup(eventType.functions, 'name', 'removeRules');
}

// A map of event names to the event object that is registered to that name.
var attachedNamedEvents = {};

// A map of functions that massage event arguments before they are dispatched.
// Key is event name, value is function.
var eventArgumentMassagers = {};

// An attachment strategy for events that aren't attached to the browser.
// This applies to events with the "unmanaged" option and events without
// names.
var NullAttachmentStrategy = function(event) {
this.event_ = event;
};
NullAttachmentStrategy.prototype.onAddedListener =
function(listener) {
};
NullAttachmentStrategy.prototype.onRemovedListener =
function(listener) {
};
NullAttachmentStrategy.prototype.detach = function(manual) {
};
NullAttachmentStrategy.prototype.getListenersByIDs = function(ids) {
// |ids| is for filtered events only.
return this.event_.listeners;
};

// Handles adding/removing/dispatching listeners for unfiltered events.
var UnfilteredAttachmentStrategy = function(event) {
this.event_ = event;
};

UnfilteredAttachmentStrategy.prototype.onAddedListener =
function(listener) {
// Only attach / detach on the first / last listener removed.
if (this.event_.listeners.length == 0)
eventNatives.AttachEvent(this.event_.eventName);
};

UnfilteredAttachmentStrategy.prototype.onRemovedListener =
function(listener) {
if (this.event_.listeners.length == 0)
this.detach(true);
};

UnfilteredAttachmentStrategy.prototype.detach = function(manual) {
eventNatives.DetachEvent(this.event_.eventName, manual);
};

UnfilteredAttachmentStrategy.prototype.getListenersByIDs = function(ids) {
// |ids| is for filtered events only.
return this.event_.listeners;
};

var FilteredAttachmentStrategy = function(event) {
this.event_ = event;
this.listenerMap_ = {};
};

FilteredAttachmentStrategy.idToEventMap = {};

FilteredAttachmentStrategy.prototype.onAddedListener = function(listener) {
var id = eventNatives.AttachFilteredEvent(this.event_.eventName,
listener.filters || {});
if (id == -1)
throw new Error("Can't add listener");
listener.id = id;
this.listenerMap_[id] = listener;
FilteredAttachmentStrategy.idToEventMap[id] = this.event_;
};

FilteredAttachmentStrategy.prototype.onRemovedListener = function(listener) {
this.detachListener(listener, true);
};

FilteredAttachmentStrategy.prototype.detachListener =
function(listener, manual) {
if (listener.id == undefined)
throw new Error("listener.id undefined - '" + listener + "'");
var id = listener.id;
delete this.listenerMap_[id];
delete FilteredAttachmentStrategy.idToEventMap[id];
eventNatives.DetachFilteredEvent(id, manual);
};

FilteredAttachmentStrategy.prototype.detach = function(manual) {
for (var i in this.listenerMap_)
this.detachListener(this.listenerMap_[i], manual);
};

FilteredAttachmentStrategy.prototype.getListenersByIDs = function(ids) {
var result = [];
for (var i = 0; i < ids.length; i++)
$Array.push(result, this.listenerMap_[ids[i]]);
return result;
};

function parseEventOptions(opt_eventOptions) {
function merge(dest, src) {
for (var k in src) {
if (!$Object.hasOwnProperty(dest, k)) {
dest[k] = src[k];
}
}
}

var options = opt_eventOptions || {};
merge(options, {
// Event supports adding listeners with filters ("filtered events"), for
// example as used in the webNavigation API.
//
// event.addListener(listener, [filter1, filter2]);
supportsFilters: false,

// Events supports vanilla events. Most APIs use these.
//
// event.addListener(listener);
supportsListeners: true,

// Event supports adding rules ("declarative events") rather than
// listeners, for example as used in the declarativeWebRequest API.
//
// event.addRules([rule1, rule2]);
supportsRules: false,

// Event is unmanaged in that the browser has no knowledge of its
// existence; it's never invoked, doesn't keep the renderer alive, and
// the bindings system has no knowledge of it.
//
// Both events created by user code (new chrome.Event()) and messaging
// events are unmanaged, though in the latter case the browser *does*
// interact indirectly with them via IPCs written by hand.
unmanaged: false,
});
return options;
};

// Event object. If opt_eventName is provided, this object represents
// the unique instance of that named event, and dispatching an event
// with that name will route through this object's listeners. Note that
// opt_eventName is required for events that support rules.
//
// Example:
// var Event = require('event_bindings').Event;
// chrome.tabs.onChanged = new Event("tab-changed");
// chrome.tabs.onChanged.addListener(function(data) { alert(data); });
// Event.dispatch("tab-changed", "hi");
// will result in an alert dialog that says 'hi'.
//
// If opt_eventOptions exists, it is a dictionary that contains the boolean
// entries "supportsListeners" and "supportsRules".
// If opt_webViewInstanceId exists, it is an integer uniquely identifying a
// tag within the embedder. If it does not exist, then this is an
// extension event rather than a event.
var EventImpl = function(opt_eventName, opt_argSchemas, opt_eventOptions,
opt_webViewInstanceId) {
this.eventName = opt_eventName;
this.argSchemas = opt_argSchemas;
this.listeners = [];
this.eventOptions = parseEventOptions(opt_eventOptions);
this.webViewInstanceId = opt_webViewInstanceId || 0;

if (!this.eventName) {
if (this.eventOptions.supportsRules)
throw new Error("Events that support rules require an event name.");
// Events without names cannot be managed by the browser by definition
// (the browser has no way of identifying them).
this.eventOptions.unmanaged = true;
}

// Track whether the event has been destroyed to help track down the cause
// of http://crbug.com/258526.
// This variable will eventually hold the stack trace of the destroy call.
// TODO(kalman): Delete this and replace with more sound logic that catches
// when events are used without being *attached*.
this.destroyed = null;

if (this.eventOptions.unmanaged)
this.attachmentStrategy = new NullAttachmentStrategy(this);
else if (this.eventOptions.supportsFilters)
this.attachmentStrategy = new FilteredAttachmentStrategy(this);
else
this.attachmentStrategy = new UnfilteredAttachmentStrategy(this);
};

// callback is a function(args, dispatch). args are the args we receive from
// dispatchEvent(), and dispatch is a function(args) that dispatches args to
// its listeners.
function registerArgumentMassager(name, callback) {
if (eventArgumentMassagers[name])
throw new Error("Massager already registered for event: " + name);
eventArgumentMassagers[name] = callback;
}

// Dispatches a named event with the given argument array. The args array is
// the list of arguments that will be sent to the event callback.
function dispatchEvent(name, args, filteringInfo) {
var listenerIDs = [];

if (filteringInfo)
listenerIDs = eventNatives.MatchAgainstEventFilter(name, filteringInfo);

var event = attachedNamedEvents[name];
if (!event)
return;

var dispatchArgs = function(args) {
var result = event.dispatch_(args, listenerIDs);
if (result)
logging.DCHECK(!result.validationErrors, result.validationErrors);
return result;
};

if (eventArgumentMassagers[name])
eventArgumentMassagers[name](args, dispatchArgs);
else
dispatchArgs(args);
}

// Registers a callback to be called when this event is dispatched.
EventImpl.prototype.addListener = function(cb, filters) {
if (!this.eventOptions.supportsListeners)
throw new Error("This event does not support listeners.");
if (this.eventOptions.maxListeners &&
this.getListenerCount_() >= this.eventOptions.maxListeners) {
throw new Error("Too many listeners for " + this.eventName);
}
if (filters) {
if (!th
0/5000
من: -
إلى: -
النتائج (العربية) 1: [نسخ]
نسخ!
(الدالة (تعريف، تتطلب، ريكويريناتيفي، ريكويريسينك، والصادرات، ووحدة التحكم، المجندون، $Array، $Function، $JSON، $Object، $RegExp، $String، $Error) {'الاستخدام الصارم'؛/ by QS"> حقوق الطبع والنشر عام 2014 الكروم المؤلفين. جميع الحقوق محفوظة.ويخضع استخدام هذه التعليمات البرمجية المصدر ترخيص نمط BSD التي يمكن أن تكونوجدت في ملف الترخيص. var اكسسيبتيونهاندلير = require('uncaught_exception_handler')؛ var افينتناتيفيس = requireNative('event_natives')؛ by QS"> تسجيل فأر = requireNative('logging')؛ var شيماريجيستري = requireNative('schema_registry')؛ var سيندريكويست = require('sendRequest').sendRequest؛ تيلس فأر = require('utils')؛ التحقق من صحة فأر = require('schemaUtils').validate؛ مخططات للمهام على غرار القاعدة بأحداث API التي تحتاج by QS"> فقط إلى يتم إنشاؤها في بعض الأحيان، لذا ملئهم تكاسل. var روليفونكتيونشيماس = { يتم تعيين هذه القيم تكاسل: أدروليس: {}، جيتروليس: {}، ريموفيروليس: {} }; هذه الدالة ويضمن أن |ruleFunctionSchemas| يتم ملؤها. الدالة ensureRuleSchemasLoaded() { إذا كان (ruleFunctionSchemas.addRules) العودة؛ var افينتسشيما = schemaRegistry.GetSchema("events")؛ eventType فأر = utils.lookup (eventsSchema.types، 'معرف'، ' الأحداث. الحدث ')؛ ruleFunctionSchemas.addRules = utils.lookup (eventType.functions, 'اسم', 'أدروليس')؛ ruleFunctionSchemas.getRules = utils.lookup (eventType.functions, 'اسم', 'جيتروليس')؛ ruleFunctionSchemas.removeRules = utils.lookup (eventType.functions, 'اسم', 'ريموفيروليس')؛ } by QS"> خريطة لأسماء الحدث لكائن الحدث الذي تم تسجيله بهذا الاسم. var أتتاتشيدناميديفينتس = {}؛ خريطة by QS"> للوظائف التي تدليك وسيطات الحدث قبل أنها يتم إرسال. المفتاح اسم الحدث، by QS"> وهو قيمة الدالة. var افينتارجومينتماساجيرس = {}؛ استراتيجية مرفق للأحداث التي لا تعلق على المستعرض. وهذا ينطبق على الأحداث مع خيار "غير المدارة" والأحداث دون أسماء. var نولاتاتشمينتستراتيجي = function(event) { this.event_ = الحدث؛ }; NullAttachmentStrategy.prototype.onAddedListener = function(listener) { }; NullAttachmentStrategy.prototype.onRemovedListener = function(listener) { }; NullAttachmentStrategy.prototype.detach = function(manual) { }; NullAttachmentStrategy.prototype.getListenersByIDs = function(ids) { |ids| من أجل الأحداث التي تم تصفيتها فقط. إرجاع this.event_.listeners؛ }; يتعامل مع إضافة/إزالة/إرسال المستمعين للأحداث لم يتم تصفيتها. var أونفيلتيريداتاتشمينتستراتيجي = function(event) { this.event_ = الحدث؛ }; UnfilteredAttachmentStrategy.prototype.onAddedListener = function(listener) { فقط إرفاق/فصل على الإصغاء الأولى/الأخيرة من إزالتها. إذا كان (this.event_.listeners.length = = 0) eventNatives.AttachEvent(this.event_.eventName)؛ }; UnfilteredAttachmentStrategy.prototype.onRemovedListener = function(listener) { إذا كان (this.event_.listeners.length = = 0) this.detach(true)؛ }; UnfilteredAttachmentStrategy.prototype.detach = function(manual) { eventNatives.DetachEvent (this.event_.eventName، دليل)؛ }; UnfilteredAttachmentStrategy.prototype.getListenersByIDs = function(ids) { |ids| من أجل الأحداث التي تم تصفيتها فقط. إرجاع this.event_.listeners؛ }; var فيلتيريداتاتشمينتستراتيجي = function(event) { this.event_ = الحدث؛ this.listenerMap_ = {}؛ }; FilteredAttachmentStrategy.idToEventMap = {}؛ FilteredAttachmentStrategy.prototype.onAddedListener = function(listener) { معرف فأر = eventNatives.AttachFilteredEvent (this.event_.eventName، listener.filters || {}); إذا كان (معرف = =-1) رمي خطأ جديد ("لا يمكن إضافة وحدة إصغاء")؛ listener.id = معرف؛ this.listenerMap_[id] = المستمع؛ FilteredAttachmentStrategy.idToEventMap[id] = this.event_؛ }; FilteredAttachmentStrategy.prototype.onRemovedListener = function(listener) { this.detachListener (المستمع، صحيح)؛ }; FilteredAttachmentStrategy.prototype.detachListener = {الدالة (المستمع، دليل) إذا كان (listener.id = = غير معروف) رمي خطأ جديد ("listener.id غير معروف-'"+ المستمع +"'")؛ معرف فأر = listener.id؛ حذف this.listenerMap_[id؛] حذف FilteredAttachmentStrategy.idToEventMap[id؛] eventNatives.DetachFilteredEvent (معرف، دليل)؛ }; FilteredAttachmentStrategy.prototype.detach = function(manual) { ل (فأر في this.listenerMap_) this.detachListener (this.listenerMap_ [i]، دليل)؛ }; FilteredAttachmentStrategy.prototype.getListenersByIDs = function(ids) { النتيجة فأر = []؛ ل (فأر أنا = 0؛ أنا < ids.length; i + +) $Array.push (نتيجة لذلك، this.listenerMap_[ids[i]])؛ إرجاع النتيجة؛ }; الدالة parseEventOptions(opt_eventOptions) { {دمج (dest، src) الدالة ل {(ك فأر في src) إذا (! $Object.hasOwnProperty (dest، ك)) { dest [ك] = src [ك]؛ } } } خيارات فأر = opt_eventOptions || {}; دمج (خيارات، { الحدث يدعم إضافة المستمعين مع عوامل التصفية ("الأحداث التي تمت تصفيتها")، عن على سبيل المثال المستخدمة في ويبنافيجيشن API. // event.addListener (وحدة إصغاء، [filter1, filter2])؛ سوبورتسفيلتيرس: كاذبة، وتؤيد الأحداث الأحداث الفانيليا. تستخدم معظم واجهات برمجة التطبيقات هذه. // event.addListener(listener)؛ سوبورتسليستينيرس: صحيح، تدعم الحدث إضافة قواعد ("أحداث التعريفي") بدلاً من المستمعين، على سبيل المثال كالمستخدمة في ديكلاراتيفيويبريقويست API. // event.addRules ([rule1، القاعدة 2])؛ سوبورتسروليس: كاذبة، الحدث غير مدارة في هذا المستعرض لا علم له بما وجود؛ فإنه يتم استدعاء ابدأ، لا تبقى على قيد الحياة، في العارض و نظام الربط لا علم له بذلك. // كل الأحداث التي تم إنشاؤها بواسطة التعليمات البرمجية للمستخدم (كروم الجديد. Event()) والمراسلة الأحداث غير المدارة، على الرغم من أن في هذه الحالة المستعرض * يقوم * تفاعل غير مباشر معهم عبر IPCs مكتوبا بخط اليد. غير المدارة: كاذبة، }); إرجاع خيارات؛ }; كائن الحدث. إذا كان يتم توفير opt_eventName، يمثل هذا الكائن مثيل فريدة من نوعها لهذا الحدث المسمى، وإرسال حدث بهذا الاسم سيتم توجيه عن طريق المستمعين لهذا الكائن. لاحظ أنه opt_eventName مطلوب للأحداث التي تدعم النظام. // على سبيل المثال: فأر الحدث = require('event_bindings'). الحدث؛ chrome.tabs.onChanged = Event("tab-changed") جديدة؛ chrome.tabs.onChanged.addListener(function(data) {alert(data)}؛)؛ Event.dispatch ("تغيير علامة التبويب"، "مرحبا")؛ سيؤدي إلى حوار تنبيه التي تقول 'مرحبا'. // في حالة وجود opt_eventOptions، هو قاموس الذي يحتوي قيمة منطقية إدخالات "سوبورتسليستينيرس" و "سوبورتسروليس". في حالة وجود opt_webViewInstanceId، عدد صحيح فريد تحديد // العلامة داخل امبيدير. إذا لم يكن موجوداً، فهذا ملحق الحدث بدلاً من الحدث. var افينتيمبل = دالة (opt_eventName، opt_argSchemas، opt_eventOptions، {opt_webViewInstanceId) this.eventName = opt_eventName؛ this.argSchemas = opt_argSchemas؛ this.listeners = []؛ this.eventOptions = parseEventOptions(opt_eventOptions)؛ this.webViewInstanceId = opt_webViewInstanceId || 0؛ إذا (! this.eventName) { إذا كان (this.eventOptions.supportsRules) رمي خطأ جديد ("الأحداث أن قواعد الدعم يتطلب اسم حدث.")؛ الأحداث دون أسماء لا يمكن أن تدار من قبل المستعرض بتعريف (المتصفح على أي طريقة للتعرف عليهم). this.eventOptions.unmanaged = true؛ } تعقب ما إذا كان الحدث قد دمر للمساعدة في تعقب لأسفل السبب من http://crbug.com/258526. وسوف يعقد هذا المتغير في النهاية تتبع المكدس المكالمة تدمر. TODO(kalman): حذف هذا واستبدالها بمزيد من المنطق السليم أن المصيد عندما يتم استخدام الأحداث دون أن * تولي *. this.destroyed = فارغة؛ إذا كان (this.eventOptions.unmanaged) this.attachmentStrategy = NullAttachmentStrategy(this) جديدة؛ وأﻻ إذا (this.eventOptions.supportsFilters) this.attachmentStrategy = FilteredAttachmentStrategy(this) جديدة؛ آخر this.attachmentStrategy = UnfilteredAttachmentStrategy(this) جديدة؛ }; رد اتصال دالة (args، إيفاد). هي وسائط وسائط نتلقاها من dispatchEvent()، وإرسال هو function(args) التي ترسل وسائط إلى مستمعيها. الدالة ريجيستيرارجومينتماساجير (الاسم، رد) { إذا كان (eventArgumentMassagers[name]) رمي خطأ جديد ("مدلك سجلت بالفعل للحدث:" + اسم)؛ افينتارجومينتماساجيرس [اسم] = رد الاتصال؛ } ترسل حدث مسمى مع الصفيف الوسيطة معينة. وسيطات الصفيف قائمة الوسائط التي سيتم إرسالها إلى رد الاتصال الحدث. {الدالة ديسباتشيفينت (اسم, وسائط, فيلتيرينجينفو) var ليستينيريدس = []؛ إذا كان (فيلتيرينجينفو) ليستينيريدس = eventNatives.MatchAgainstEventFilter (الاسم، فيلتيرينجينفو)؛ الحدث فأر = أتتاتشيدناميديفينتس [اسم]؛ إذا (! الحدث) العودة؛ var ديسباتشارجس = function(args) { النتيجة فأر = event.dispatch_ (args، ليستينيريدس)؛ إذا كان (النتيجة) قطع الأشجار. دتشيك (! result.validationErrors، result.validationErrors)؛ إرجاع النتيجة؛ }; إذا كان (eventArgumentMassagers[name]) افينتارجومينتماساجيرس [اسم] (وسائط، ديسباتشارجس)؛ آخر dispatchArgs(args)؛ } يقوم بتسجيل رد اتصال ليتم استدعاؤها عندما يتم إرسال هذا الحدث. EventImpl.prototype.addListener = {وظيفة (بناء القدرات، ومرشحات) إذا (! this.eventOptions.supportsListeners) رمي خطأ جديد ("هذا الحدث لا تدعم المستمعين.")؛ إذا كان (this.eventOptions.maxListeners & & this.getListenerCount_() > = this.eventOptions.maxListeners) { رمي خطأ جديد ("جداً العديد من المستمعين ل" + this.eventName)؛ } إذا {(مرشحات) إذا (! th
يجري ترجمتها، يرجى الانتظار ..
النتائج (العربية) 2:[نسخ]
نسخ!
(وظيفة (تعريف، تتطلب، requireNative، requireAsync، والصادرات، وحدة التحكم، حافظون، $ صفيف، $ وظيفة، $ JSON، $ كائن، $ REGEXP، $ سلسلة $ خطأ) {'استخدام صارمة؛ // by QS"> حقوق التأليف والنشر عام 2014 الكروم . المؤلفون جميع الحقوق محفوظة.
// يخضع استخدام هذا شفرة المصدر على ترخيص BSD على غرار التي يمكن أن تكون
// وجدت في ملف الترخيص. فار exceptionHandler = تتطلب ('uncaught_exception_handler')؛ فار eventNatives = requireNative ('event_natives " )؛ by QS"> تسجيلفار = requireNative ('تسجيل')؛ فار schemaRegistry = requireNative ('schema_registry')؛ فار sendRequest = تتطلب ('sendRequest') sendRequest؛ تيلس فار = تتطلب ('تيلس')؛ فار = التحقق من صحة تتطلب (' ؛ schemaUtils ') التحقق من صحة. // مخططات للوظائف على غرار القاعدة على API الأحداث التي // تحتاج فقط إلى أن تتولد في بعض الأحيان، لذلك ملء لهم بتكاسل. {فار ruleFunctionSchemas = // يتم تعيين هذه القيم بتكاسل: // addRules: {}، // getRules: {}، // removeRules: {} }؛ // تضمن هذه by QS"> الوظيفة أن | ruleFunctionSchemas | يتم ملؤها تعمل ensureRuleSchemasLoaded () { إذا (ruleFunctionSchemas.addRules) العودة؛ فار eventsSchema = schemaRegistry.GetSchema ( "الأحداث")؛ فار eventType = utils.lookup (eventsSchema.types، 'هوية'، 'events.Event')؛ ruleFunctionSchemas.addRules = utils.lookup (eventType.functions، 'اسم'، 'addRules')؛ ruleFunctionSchemas. getRules = utils.lookup (eventType.functions، 'اسم'، 'getRules')؛ ruleFunctionSchemas.removeRules = utils.lookup (eventType.functions، 'اسم'، 'removeRules')؛ } // خارطة الأسماء الحدث ل كائن الحدث الذي تم تسجيله لهذا الاسم. attachedNamedEvents فار = {}؛ // خريطة من الوظائف التي الحجج الحدث التدليك قبل ترسل أنها // المفتاح هو اسم الحدث، القيمة هي by QS"> وظيفة. eventArgumentMassagers فار = {}؛ // ان . استراتيجية مرفق للأحداث التي لم تعلق على المتصفح // هذا ينطبق على الأحداث مع "غير المدارة" الخيار والأحداث دون // الأسماء. فار NullAttachmentStrategy = by QS"> وظيفة (الحدث) { this.event_ = الحدث؛ }؛ NullAttachmentStrategy. prototype.onAddedListener = by QS"> وظيفة(المستمع) { }؛ NullAttachmentStrategy.prototype.onRemovedListener = by QS"> وظيفة(المستمع) { }؛ NullAttachmentStrategy.prototype.detach = وظيفة (دليل) { }؛ NullAttachmentStrategy.prototype.getListenersByIDs = وظيفة (IDS) { // | هويات | غير لأحداث تمت تصفيتها فقط. العودة this.event_.listeners؛ }؛ // مقابض إضافة / إزالة / المستمعين إيفاد للأحداث التي لم تتم تصفيتها. فار UnfilteredAttachmentStrategy = وظيفة (الحدث) { this.event_ = الحدث؛ }؛ UnfilteredAttachmentStrategy.prototype .onAddedListener = وظيفة (المستمع) { // إرفاق فقط / فصل في أول / الماضي المستمع إزالتها. إذا (this.event_.listeners.length == = وظيفة (المستمع) { إذا (this.event_.listeners.length == 0) this.detach (صحيح)؛ }؛ UnfilteredAttachmentStrategy.prototype.detach = وظيفة (دليل) { eventNatives.DetachEvent (this.event_.eventName، دليل )؛ }؛ UnfilteredAttachmentStrategy.prototype.getListenersByIDs = وظيفة (IDS) { // | هويات | غير لأحداث تمت تصفيتها فقط عودة this.event_.listeners؛ }؛ فار FilteredAttachmentStrategy = وظيفة (الحدث) { this.event_ = الحدث؛ هذا .listenerMap_ = {}؛ }؛ FilteredAttachmentStrategy.idToEventMap = {}؛ FilteredAttachmentStrategy.prototype.onAddedListener = وظيفة (المستمع) { فار معرف = eventNatives.AttachFilteredEvent (this.event_.eventName، listener.filters || {})؛ إذا ( معرف == -1) رمي خطأ جديد ("لا يمكن إضافة المستمع")؛ listener.id = معرف؛ this.listenerMap_ [ID] = المستمع؛ FilteredAttachmentStrategy.idToEventMap [ID] = this.event_؛ }؛ FilteredAttachmentStrategy.prototype .onRemovedListener = وظيفة (المستمع) { this.detachListener (المستمع، صحيح)؛ }؛ FilteredAttachmentStrategy.prototype.detachListener = وظيفة (المستمع، والخط) { إذا (listener.id == غير معرف) رمي خطأ جديد ("listener.id غير محدد - "+ مستمع +" '")؛ فار معرف = listener.id؛ حذف this.listenerMap_ [ID]؛ حذف FilteredAttachmentStrategy.idToEventMap [ID]؛ eventNatives.DetachFilteredEvent (الهوية، ودليل)؛ }؛ FilteredAttachmentStrategy.prototype.detach = وظيفة (دليل) { ل(فار كنت في this.listenerMap_) this.detachListener (this.listenerMap_ [أنا]، دليل)؛ }؛ FilteredAttachmentStrategy.prototype.getListenersByIDs = وظيفة (IDS) { نتيجة فار = []؛ ل( فار ط = 0؛ I <ids.length. ط ++) $ Array.push (نتيجة لذلك، this.listenerMap_ [هويات [أنا]])؛ نتيجة العودة؛ }؛ parseEventOptions وظيفة (opt_eventOptions) { دمج وظيفة (دست، SRC) { ل(فار ك في SRC) { إذا (! $ Object.hasOwnProperty (دست، ك)) { دست [ك] = SRC [ك]؛ } } } خيارات فار = opt_eventOptions || {}؛ دمج (خيارات، { // يدعم الحدث مضيفا المستمعين مع المرشحات ("الأحداث التي تمت تصفيتها ")، على سبيل المثال // كما تستخدم في API webNavigation. // // event.addListener (المستمع، [filter1، filter2])؛ supportsFilters: كاذبة، . // أحداث تدعم أحداث الفانيليا معظم واجهات برمجة التطبيقات تستخدم هذه // / / event.addListener (المستمع)؛ supportsListeners: صحيح، // الحدث يدعم إضافة القواعد ("الأحداث التعريفي") بدلا من // المستمعين، على سبيل المثال، المستخدم في declarativeWebRequest API. // // event.addRules ([rule1، rule2])؛ supportsRules: كاذبة، // حدث هو ​​غير المدارة في أن المتصفح ليس لديها علم به // الوجود؛ انها الاحتجاج أبدا، لا يحفظ العارض على قيد الحياة، و // النظام الارتباطات ليس لديه معرفة ذلك. // // كل الأحداث التي تم إنشاؤها بواسطة رمز المستخدم (chrome.Event جديد ()) والرسائل // الأحداث غير المدارة، وإن كان في الحالة الأخيرة المتصفح * لا * // التفاعل معهم بصورة غير مباشرة عن طريق الدولي للسلامة الكيميائية مكتوبا بخط اليد غير المدارة: كاذبة، })؛ خيارات العودة؛ }؛ // الكائن الحدث. إذا تم توفير opt_eventName، ويمثل هذا الكائن // المقام فريدة من هذا الحدث اسمه، وإيفاد حدث // بهذا الاسم سيتم توجيه المستمعين من خلال هذا الكائن. لاحظ أن // opt_eventName مطلوب للأحداث التي تدعم القواعد. // // مثال: // فار الحدث = تتطلب ('event_bindings') حدث؛ // chrome.tabs.onChanged = حدث جديد ("تغير علامة التبويب") ؛ // chrome.tabs.onChanged.addListener (وظيفة (بيانات) {تنبيه (البيانات)؛})؛ // Event.dispatch ("تغير علامة التبويب"، "مرحبا")؛ // سوف يؤدي إلى حوار التنبيه أن ويقول "مرحبا". // // إذا opt_eventOptions موجود، بل هو القاموس الذي يحتوي على منطقية // إدخالات "supportsListeners" و "supportsRules". // في حالة وجود opt_webViewInstanceId، هو عدد صحيح بتحديد فريد //

































من جانب QS">مسجلة بهذا الاسم.







من جانب QS">ينطبق على الأحداث مع "غير المدارة" الخيار والأحداث دون














































































































































العلامة داخل يمبيدر. إذا لم يكن موجودا، ثم وهذا هو
الحدث تمديد // بدلا من. الحدث
فار EventImpl = وظيفة (opt_eventName، opt_argSchemas، opt_eventOptions،
opt_webViewInstanceId) {
this.eventName = opt_eventName؛
this.argSchemas = opt_argSchemas؛
this.listeners = []؛
this.eventOptions = parseEventOptions (opt_eventOptions)؛
this.webViewInstanceId = opt_webViewInstanceId | | 0؛ (! this.eventName) إذا { إذا (this.eventOptions.supportsRules) رمي خطأ جديد (". النشاطات التي تدعم قواعد تتطلب اسم الحدث")؛ // الأحداث دون أسماء لا يمكن أن تدار من قبل المتصفح بالتعريف / / (متصفح لديه أية طريقة التعرف عليها). this.eventOptions.unmanaged = صحيح؛ } // المسار ما إذا كان قد تم تدمير هذا الحدث للمساعدة في تعقب سبب // من http://crbug.com/258526 / / هذا المتغير سوف تعقد في نهاية المطاف تتبع المكدس لتدمير المكالمة. // TODO (كالمان): حذف هذا واستبدال مع المنطق أكثر الصوت الذي يمسك // عندما يتم استخدام الأحداث دون أن تعلق * *. this.destroyed = فارغة؛ إذا (this.eventOptions.unmanaged) this.attachmentStrategy = جديد NullAttachmentStrategy (هذا)؛ الا اذا (this.eventOptions.supportsFilters) this.attachmentStrategy = FilteredAttachmentStrategy جديد (هذا)؛ آخر this.attachmentStrategy = UnfilteredAttachmentStrategy جديد (هذا)؛ }؛ / / رد الاتصال وظيفة (وسائط، وإيفاد). وسائط هي وسائط نتلقاها من // dispatchEvent ()، وإيفاد هي وظيفة (وسائط) التي ترسل إلى وسائط // مستمعيها. تعمل registerArgumentMassager (الاسم، رد) { إذا (eventArgumentMassagers [اسم]) رمي خطأ جديد (" مدلك مسجلا بالفعل لهذا الحدث: "+ اسم)؛ eventArgumentMassagers [اسم] = الاستدعاء؛ } // برقيات حدث مسمى مع مجموعة حجة معينة. مجموعة وسائط هو // قائمة الوسائط التي سيتم إرسالها إلى رد الحدث. تعمل dispatchEvent (الاسم، وسائط، filteringInfo) { listenerIDs فار = []؛ إذا (filteringInfo) listenerIDs = eventNatives.MatchAgainstEventFilter (الاسم، filteringInfo)؛ الحدث فار = attachedNamedEvents [اسم]؛ (! الحدث) إذا العودة؛ dispatchArgs فار = وظيفة (وسائط) { فار النتيجة = event.dispatch_ (وسائط، listenerIDs)؛ إذا (نتيجة) ! logging.DCHECK (result.validationErrors، نتيجة. validationErrors)؛ نتيجة العودة؛ }؛ إذا (eventArgumentMassagers [اسم]) eventArgumentMassagers [اسم] (وسائط، dispatchArgs)؛ آخر dispatchArgs (وسائط)؛ } // تسجيلات رد اتصال ليتم استدعاؤها عند أرسل هذا الحدث. EventImpl.prototype. addListener = وظيفة (سي بي، والمرشحات) { إذا (this.eventOptions.supportsListeners!) رمي خطأ جديد ("هذا الحدث لا يدعم المستمعين.")؛ إذا (this.eventOptions.maxListeners && this.getListenerCount_ ()> = هذا. eventOptions.maxListeners) { رمي خطأ جديد ("عدد كبير جدا من المستمعين ل" + this.eventName)؛ } إذا (الفلاتر) { إذا (ال!



































































يجري ترجمتها، يرجى الانتظار ..
النتائج (العربية) 3:[نسخ]
نسخ!
(تابع (تعريف, تتطلب, requirenative requireasync، الصادرات، تعزية، الجنود، الصفيف $، 000 وظيفة، مبلغ قدره جسون الكائن Regexp $سلسلة، و الخطأ) {'use مدبرة '؛ / / حقوق الطبع والنشر 2014 الكروم المؤلفين.جميع الحقوق محفوظة -
/ / استخدام هذا الكود تحكمه بي إس دي ترخيص النمط يمكن
/ / موجود في ملف الترخيص

ور exceptionhandler = يشترط ()؛'uncaught_exception_handler
ور eventnatives = requirenative ()؛'event_natives

ور ور الأشجار = requirenative ('logging ')؛ schemaregistry = requirenative ('schema_registry') و
ور sendrequest = تتطلب ('sendrequest '). sendrequest؛

ور ور وتيلس = تتطلب ('utils')؛ صحة = تتطلب ()'schemautils صحة؛

/ / مخططات القاعدة أسلوب يعمل على احداث المعهد
/ / تحتاج فقط إلى ان تولد أحيانا،حتى اهل بتكاسل
ور rulefunctionschemas = {

/ / / / هذه القيم هي مجموعة بتكاسل: addrules: {}
/ / removerules getrules: {}

}: {}؛

/ / هذه الوظيفة يضمن أن | rulefunctionschemas | يتم ملؤها
وظيفة ensureruleschemasloaded() {
إذا (rulefunctionschemas addrules)

ور العودة؛ eventsschema = schemaregistry getschema ("الأحداث")؛
ور eventtype = وتيلس. بحث (eventsschema.أنواع 'سعيد'، 'الأحداث الحدث')؛

rulefunctionschemas.addrules =
وتيلس. بحث (eventtype.functions' اسم '، addrules')؛ rulefunctionschemas.getrules
=
وتيلس. بحث (eventtype.functions' اسم'، '')؛ getrules rulefunctionschemas.removerules
=
بحث وتيلس. (eventtype.functions' اسم '،' ')؛ removerules


} / / خريطة الحدث اسماء الحدث الكائن الذي يتم تسجيل هذا الاسم -
ور attachednamedevents = {}؛

/ / خريطة وظائف تدليك الحدث الحجج قبل ان يتم ارسالها
/ / مفتاح اسم الحدث، قيمة دالة
ور eventargumentmassagers = {}؛

/ / ملحق الاستراتيجية للأحداث التي ليست مرفقة المتصفح
/ / وهذا ينطبق على الأحداث المنفلتة خيار والأحداث دون

فار / / أسماء. nullattachmentstrategy = وظيفة (الحدث) {
this.event _ = الحدث؛؛ nullattachmentstrategy.prototype.onaddedlistener
=

} وظيفة (المستمع) {}؛ nullattachmentstrategy.prototype.onremovedlistener

=
وظيفة (المستمع) {

nullattachmentstrategy.prototype.detach = وظيفة (دليل) {}؛
}؛ {

nullattachmentstrategy.prototype.getlistenersbyids = وظيفة (معرفات) / / | معرفات | يتم تصفيتها على المناسبات فقط.
العودة هذه. event_ المستمعين؛


/ / مقابض إضافة / إزالة / إرسال المستمعين لأحداث فلتر
ور unfilteredattachmentstrategy = وظيفة (الحدث) {
this.event _ = الحدث؛


unfilteredattachmentstrategy.prototype.onaddedlistener =}؛ {

وظيفة (المستمع) / / فقط إرفاق / فصل اول / الماضي المستمع إزالتها.
إذا (هذا event_. listeners.length = = 0)
eventnatives attachevent (هذا event_ eventname)؛؛

}
unfilteredattachmentstrategy.prototype.onremovedlistener = {

وظيفة (المستمع) إذا (هذا event_. listeners.length = = 0)
هذا فصل (صحيح)؛


}؛ unfilteredattachmentstrategy.prototype.detach = وظيفة (دليل) {
eventnatives detachevent (هذا event_. eventname يدوي)؛
} و

unfilteredattachmentstrategy.prototype.getlistenersbyids = وظيفة (معرفات) {
/ / | معرفات | يتم تصفيتها على الأحداث فقط -
يعود هذا event_ المستمعين؛


}؛ ور filteredattachmentstrategy = وظيفة (الحدث) {
this.event _ = الحدث؛
this.listenermap _ = {}؛ {؛




filteredattachmentstrategy.idtoeventmap = {}؛ filteredattachmentstrategy.prototype.onaddedlistener = وظيفة (المستمع) {
ور id = eventnatives attachfilteredevent (هذا event_. eventname,
listener.filters | | {})؛ (ID = = - 1)

اذارمي خطأ جديد (لا أستطيع إضافة المستمع ")؛
listener.id = معرف؛
هذا listenermap_ [الهوية] = المستمع؛
filteredattachmentstrategy. idtoeventmap [الهوية] = هذا event_؛


}؛ filteredattachmentstrategy.prototype.onremovedlistener = وظيفة (المستمع) {
هذا detachlistener (المستمع الحقيقي)؛

filteredattachmentstrategy.prototype.detachlistener =

}؛ وظيفة (المستمع، دليل) {
إذا (listener.id = = محدد)
رمي خطأ جديد listener.id محدد ("-" المستمع "")؛
ور id = المستمع الهوية؛
حذف هذا. listenermap_ [الهوية]؛ حذف filteredattachmentstrategy idtoeventmap [الهوية]؛

eventnatives - دليل detachfilteredevent (معرف)؛؛

} {

filteredattachmentstrategy.prototype.detach = وظيفة (دليل) على (فار انا في هذه listenermap_)
هذا detachlistener (هذا listenermap_ [أنا), Manual)؛


filteredattachmentstrategy.prototype.getlistenersbyids = وظيفة (معرفات) {

(ور ور النتيجة = []؛ ط = 0؛ ا ids.length؛ أنا)
الصفيف $. دفع (وبالتالي فإن هذا listenermap_ [الهوية] [الأول])؛ نتيجة عودة،



parseeventoptions (opt_eventoptions) {
كل مهمة دمج (SRC) {
(دست ور ك في src) {
إذا (!كائن دولار. hasownproperty (دست، ك) (ك) {
دست = استخدم [ك]؛


}}}

خيارات فار = opt_eventoptions | | {}، {

دمج (خيارات / / الحدث يدعم إضافة المستمعين مع مرشحات ("ترشح الأحداث" على سبيل المثال)،
/ / المستخدمة في webnavigation API.

/ / / / الحدث. addlistener (سامع يا [filter1 filter2)
supportsfilters: كاذبة

/ / الأحداث يدعم الفانيليا الأحداث.معظم واجهات برمجة التطبيقات استخدام هذه

/ / / / الحدث. addlistener (المستمع)؛
supportslisteners: صحيح

/ / الحدث يدعم إضافة القواعد (الأحداث التقريرية) وليس
/ / المستمعين، على سبيل المثال، كما تستخدم في declarativewebrequest API.

/ / / / الحدث. addrules ([rule1 rule2)
supportsrules: كاذبة

/ / الحدث المنفلتة في هذا المتصفح لا علم
/ / الوجود؛ إنها تحتج أبدا، لا تبقي العارض على قيد الحياة،
/ / نظام ربط ليس له علم بذلك / /

/ / كل من الأحداث الناجمة عن رمز المستخدم (جديد كروم. event()) والرسائل
/ / الأحداث المنفلتة، وإن كان في الحالة الثانية متصفح * لا *
/ / تتفاعل معها بشكل غير مباشر عن طريق البرنامج مكتوب باليد
المنفلتة: باطل؛

}) خيارات عودة؛


}؛ / / الحدث الكائن.إذا تم توفير opt_eventname هذا الكائن يمثل
/ / حالة فريدة من هذا الحدث الذي يدعى، وإرسال هذا الحدث
/ / مع أن الطريق عبر اسم هذا الكائن المستمعين.علما بأن
/ / يلزم opt_eventname للأحداث التي تدعم النظام.
/ / مثال:

/ الحدث / فار = يشترط ().'event_bindings الحدث؛
/ / chrome.tabs.onchanged = حالة جديدة ("التبويب يتغير")؛
/ / علامات التبويب كروم... onchanged addlistener (وظيفة (البيانات) {تنبيه (البيانات)؛})؛
/ / الحدث بإرسال (حبة تغيرت "مرحبا")؛
/ / سيؤدي في مربع الحوار تحذير يقول "مرحبا".

/ / / / إذا opt_eventoptions موجود، وهو قاموس يحتوي منطقي
/ / مداخل supportslisteners "و" supportsrules
/ / إذا opt_webviewinstanceid موجود، وهو عدد صحيح بتفرد تحديد
/ / < webview > بطاقة داخل embedder.إذا كان غير موجود، ثم وهذا
/ / تمديد الحدث وليس الحدث > webview -
ور eventimpl = وظيفة (opt_eventname، opt_eventoptions opt_argschemas

this.eventname opt_webviewinstanceid) {= opt_eventname؛

this.listeners = this.argschemas = opt_argschemas؛ []؛ (opt_eventoptions)؛

this.eventoptions = parseeventoptions this.webviewinstanceid = opt_webviewinstanceid | | 0؛

اذا (!هذا eventname) {
إذا (هذا eventoptions supportsrules)
رمي خطأ جديد ("الأحداث التي تدعم النظام تتطلب اسم الحدث.")؛
/ / الأحداث دون أسماء لا يمكن أن يديرها تعريف المتصفح
/ / (المتصفح لا يوجد لديه طريقة التعرف عليها)

}

this.eventoptions.unmanaged = صحيح؛ / / تعقب ما إذا كان الحدث قد تم تدميره للمساعدة في تعقب قضية
/ / http: / / crbug. COM / 258526 -
يجري ترجمتها، يرجى الانتظار ..
 
لغات أخرى
دعم الترجمة أداة: الآيسلندية, الأذرية, الأردية, الأفريقانية, الألبانية, الألمانية, الأمهرية, الأوديا (الأوريا), الأوزبكية, الأوكرانية, الأويغورية, الأيرلندية, الإسبانية, الإستونية, الإنجليزية, الإندونيسية, الإيطالية, الإيغبو, الارمنية, الاسبرانتو, الاسكتلندية الغالية, الباسكية, الباشتوية, البرتغالية, البلغارية, البنجابية, البنغالية, البورمية, البوسنية, البولندية, البيلاروسية, التاميلية, التايلاندية, التتارية, التركمانية, التركية, التشيكية, التعرّف التلقائي على اللغة, التيلوجو, الجاليكية, الجاوية, الجورجية, الخؤوصا, الخميرية, الدانماركية, الروسية, الرومانية, الزولوية, الساموانية, الساندينيزية, السلوفاكية, السلوفينية, السندية, السنهالية, السواحيلية, السويدية, السيبيوانية, السيسوتو, الشونا, الصربية, الصومالية, الصينية, الطاجيكي, العبرية, العربية, الغوجراتية, الفارسية, الفرنسية, الفريزية, الفلبينية, الفنلندية, الفيتنامية, القطلونية, القيرغيزية, الكازاكي, الكانادا, الكردية, الكرواتية, الكشف التلقائي, الكورسيكي, الكورية, الكينيارواندية, اللاتفية, اللاتينية, اللاوو, اللغة الكريولية الهايتية, اللوكسمبورغية, الليتوانية, المالايالامية, المالطيّة, الماورية, المدغشقرية, المقدونية, الملايو, المنغولية, المهراتية, النرويجية, النيبالية, الهمونجية, الهندية, الهنغارية, الهوسا, الهولندية, الويلزية, اليورباية, اليونانية, الييدية, تشيتشوا, كلينجون, لغة هاواي, ياباني, لغة الترجمة.

Copyright ©2024 I Love Translation. All reserved.

E-mail: