📄 ssfx.core.debug.js
字号:
while ($enum1.moveNext()) {
var disposable = $enum1.get_current();
disposable.dispose();
}
this._disposableObjects.clear();
}
if (this._history) {
this._history.dispose();
this._history = null;
}
window.detachEvent('onbeforeunload', this._windowUnloadingHandler);
window.detachEvent('onerror', this._windowErrorHandler);
this._windowUnloadingHandler = null;
this._windowErrorHandler = null;
this._taskTimerTickHandler = null;
this._idleTimerTickHandler = null;
}
},
_onTaskTimerTick: function ScriptFX_Application$_onTaskTimerTick() {
this._taskTimer = 0;
if (this._taskQueue.length) {
var task = this._taskQueue.dequeue();
if (!task.execute()) {
this._taskQueue.enqueue(task);
}
else {
if (Type.canCast(task, IDisposable)) {
(task).dispose();
}
}
if (this._taskQueue.length) {
this._taskTimer = window.setTimeout(this._taskTimerTickHandler, 0);
}
}
},
_onWindowError: function ScriptFX_Application$_onWindowError() {
var handler = this.get__events().getHandler('error');
if (handler) {
var ce = new ScriptFX.CancelEventArgs();
ce.set_canceled(true);
handler.invoke(this, ce);
if (ce.get_canceled()) {
window.event.returnValue = false;
}
}
},
_onWindowUnloading: function ScriptFX_Application$_onWindowUnloading() {
var handler = this.get__events().getHandler('unloading');
if (handler) {
var e = new ScriptFX.ApplicationUnloadingEventArgs();
handler.invoke(this, e);
}
if (this._sessionState) {
var sessionElement = $('__session');
sessionElement.value = ScriptFX.JSON.serialize(this._sessionState);
}
},
raiseEvent: function ScriptFX_Application$raiseEvent(eventType, sender, e) {
Debug.assert(String.isNullOrEmpty(eventType));
Debug.assert(sender);
Debug.assert(e);
if (this._registeredEventHandlers) {
var handler = this._registeredEventHandlers[eventType];
if (handler) {
handler.invoke(sender, e);
}
}
},
registerDisposableObject: function ScriptFX_Application$registerDisposableObject(disposableObject) {
if (!this._disposing) {
this._disposableObjects.add(disposableObject);
}
},
registerEvent: function ScriptFX_Application$registerEvent(eventType, sender, e) {
Debug.assert(String.isNullOrEmpty(eventType));
Debug.assert(sender);
Debug.assert(e);
if (this._registeredEventHandlers) {
var handler = this._registeredEventHandlers[eventType];
if (handler) {
handler.invoke(sender, e);
}
}
if (!this._registeredEvents) {
this._registeredEvents = [];
}
if (!this._registeredEventTypes) {
this._registeredEventTypes = {};
this._registeredEventTypes[eventType] = 1;
}
else {
var eventCount = this._registeredEventTypes[eventType];
if (isUndefined(eventCount)) {
this._registeredEventTypes[eventType] = 1;
}
else {
this._registeredEventTypes[eventType] = 1 + eventCount;
}
}
var eventInfo = ScriptFX.$create__registeredEvent(eventType, sender, e, this._registeredEvents.length);
this._registeredEvents.add(eventInfo);
return eventInfo.eventCookie;
},
registerEventHandler: function ScriptFX_Application$registerEventHandler(eventType, handler) {
Debug.assert(!String.isNullOrEmpty(eventType));
Debug.assert(handler);
var existingHandler = null;
if (!this._registeredEventHandlers) {
this._registeredEventHandlers = {};
}
else {
existingHandler = this._registeredEventHandlers[eventType];
}
this._registeredEventHandlers[eventType] = Delegate.combine(existingHandler, handler);
if (!isNullOrUndefined(this._registeredEventTypes[eventType])) {
var $enum1 = this._registeredEvents.getEnumerator();
while ($enum1.moveNext()) {
var eventInfo = $enum1.get_current();
if (!eventInfo) {
continue;
}
if (eventInfo.eventType === eventType) {
handler.invoke(eventInfo.sender, eventInfo.eventArgs);
}
}
}
},
registerService: function ScriptFX_Application$registerService(serviceType, service) {
Debug.assert(serviceType);
Debug.assert(service);
if (!this._services) {
this._services = {};
}
var name = serviceType.get_fullName().replace('.', '$');
Debug.assert(!this._services[name]);
this._services[name] = service;
},
run: function ScriptFX_Application$run(scriptletType, args) {
if (this._loaded) {
scriptletType.main(args);
}
else {
if (!this._scriptlets) {
this._scriptlets = [];
}
this._scriptlets.add(scriptletType);
this._scriptlets.add(args);
}
},
unregisterDisposableObject: function ScriptFX_Application$unregisterDisposableObject(disposableObject) {
Debug.assert(disposableObject);
if (!this._disposing) {
this._disposableObjects.remove(disposableObject);
}
},
unregisterEvent: function ScriptFX_Application$unregisterEvent(eventCookie) {
Debug.assert(eventCookie);
Debug.assert(Type.canCast(eventCookie, Number));
Debug.assert(this._registeredEvents);
Debug.assert(this._registeredEventTypes);
var eventInfo = this._registeredEvents[eventCookie];
Debug.assert(eventInfo);
var eventCount = this._registeredEventTypes[eventInfo.eventType];
Debug.assert(eventCount >= 1);
if (eventCount === 1) {
delete this._registeredEventTypes[eventInfo.eventType];
}
else {
this._registeredEventTypes[eventInfo.eventType] = eventCount - 1;
}
this._registeredEvents[eventCookie] = null;
},
unregisterEventHandler: function ScriptFX_Application$unregisterEventHandler(eventType, handler) {
Debug.assert(!String.isNullOrEmpty(eventType));
Debug.assert(handler);
if (this._registeredEventHandlers) {
var existingHandler = this._registeredEventHandlers[eventType];
if (existingHandler) {
existingHandler = Delegate.remove(existingHandler, handler);
if (!existingHandler) {
delete this._registeredEventHandlers[eventType];
}
else {
this._registeredEventHandlers[eventType] = existingHandler;
}
}
}
},
unregisterService: function ScriptFX_Application$unregisterService(serviceType) {
Debug.assert(serviceType);
if (this._services) {
var name = serviceType.get_fullName().replace('.', '$');
delete this._services[name];
}
}
}
////////////////////////////////////////////////////////////////////////////////
// ScriptFX.CancelEventArgs
ScriptFX.CancelEventArgs = function ScriptFX_CancelEventArgs() {
ScriptFX.CancelEventArgs.constructBase(this);
}
ScriptFX.CancelEventArgs.prototype = {
_canceled$1: false,
get_canceled: function ScriptFX_CancelEventArgs$get_canceled() {
return this._canceled$1;
},
set_canceled: function ScriptFX_CancelEventArgs$set_canceled(value) {
this._canceled$1 = value;
return value;
}
}
////////////////////////////////////////////////////////////////////////////////
// ScriptFX.CollectionChangedEventArgs
ScriptFX.CollectionChangedEventArgs = function ScriptFX_CollectionChangedEventArgs(action, item) {
ScriptFX.CollectionChangedEventArgs.constructBase(this);
this._action$1 = action;
this._item$1 = item;
}
ScriptFX.CollectionChangedEventArgs.prototype = {
_action$1: 0,
_item$1: null,
get_action: function ScriptFX_CollectionChangedEventArgs$get_action() {
return this._action$1;
},
get_item: function ScriptFX_CollectionChangedEventArgs$get_item() {
return this._item$1;
}
}
////////////////////////////////////////////////////////////////////////////////
// ScriptFX.ApplicationUnloadingEventArgs
ScriptFX.ApplicationUnloadingEventArgs = function ScriptFX_ApplicationUnloadingEventArgs() {
ScriptFX.ApplicationUnloadingEventArgs.constructBase(this);
}
ScriptFX.ApplicationUnloadingEventArgs.prototype = {
setUnloadPrompt: function ScriptFX_ApplicationUnloadingEventArgs$setUnloadPrompt(prompt) {
window.event.returnValue = prompt;
}
}
////////////////////////////////////////////////////////////////////////////////
// ScriptFX.HistoryManager
ScriptFX.HistoryManager = function ScriptFX_HistoryManager(enabled, iframe) {
this._enabled = enabled;
this._iframe = iframe;
}
ScriptFX.HistoryManager._createHistory = function ScriptFX_HistoryManager$_createHistory() {
var hostName = ScriptFX.Application.current.get_host().get_name();
if ((hostName !== ScriptFX.HostName.IE) && (hostName !== ScriptFX.HostName.mozilla)) {
return new ScriptFX.HistoryManager(false, null);
}
var iframe = null;
if (hostName === ScriptFX.HostName.IE) {
iframe = $('_historyFrame');
Debug.assert(iframe, 'You must have an <iframe id=\"_historyFrame\" src=\"Empty.htm\" /> tag on your page.');
}
return new ScriptFX.HistoryManager(true, iframe);
}
ScriptFX.HistoryManager.prototype = {
_enabled: false,
_iframe: null,
_emptyPageURL: null,
_iframeLoadHandler: null,
_ignoreTimer: false,
_ignoreIFrame: false,
_currentEntry: null,
get_isEnabled: function ScriptFX_HistoryManager$get_isEnabled() {
return this._enabled;
},
add_navigated: function ScriptFX_HistoryManager$add_navigated(value) {
this.__navigated = Delegate.combine(this.__navigated, value);
},
remove_navigated: function ScriptFX_HistoryManager$remove_navigated(value) {
this.__navigated = Delegate.remove(this.__navigated, value);
},
__navigated: null,
addEntry: function ScriptFX_HistoryManager$addEntry(entryName) {
Debug.assert(!String.isNullOrEmpty(entryName));
Debug.assert(!$(entryName), 'The entry identifier should not be the same as an element ID.');
if (!this._enabled) {
return;
}
this._ignoreTimer = true;
if (this._iframe) {
this._ignoreIFrame = true;
this._iframe.src = this._emptyPageURL + entryName;
}
else {
this._setCurrentEntry(entryName);
}
},
dispose: function ScriptFX_HistoryManager$dispose() {
if (this._iframe) {
this._iframe.detachEvent('onload', this._iframeLoadHandler);
this._iframe = null;
}
},
_getCurrentEntry: function ScriptFX_HistoryManager$_getCurrentEntry() {
var entryName = window.location.hash;
if ((entryName.length) && (entryName.charAt(0) === '#')) {
entryName = entryName.substr(1);
}
return entryName;
},
goBack: function ScriptFX_HistoryManager$goBack() {
window.history.back();
},
goForward: function ScriptFX_HistoryManager$goForward() {
window.history.forward();
},
_initialize: function ScriptFX_HistoryManager$_initialize() {
if (!this._enabled) {
return;
}
ScriptFX.Application.current.add_idle(Delegate.create(this, this._onAppIdle));
if (this._iframe) {
Debug.assert(this._iframe.src.length, 'You must set the Src attribute of the history iframe element to an empty page.');
this._emptyPageURL = this._iframe.src + '?';
this._iframeLoadHandler = Delegate.create(this, this._onIFrameLoad);
this._iframe.attachEvent('onload', this._iframeLoadHandler);
}
this._currentEntry = this._getCurrentEntry();
this._onNavigated(this._currentEntry);
},
_onAppIdle: function ScriptFX_HistoryManager$_onAppIdle(sender, e) {
var entryName = this._getCurrentEntry();
if (entryName !== this._currentEntry) {
if (this._ignoreTimer) {
return;
}
this._currentEntry = entryName;
this._onNavigated(entryName);
}
else {
this._ignoreTimer = false;
}
},
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -