AlwaysShowToolbar.js
资源名称:oa.rar [点击查看]
上传用户:kimgenplus
上传日期:2016-06-05
资源大小:20877k
文件大小:4k
源码类别:
OA系统
开发平台:
Java
- /*
- Copyright (c) 2004-2006, The Dojo Foundation
- All Rights Reserved.
- Licensed under the Academic Free License version 2.1 or above OR the
- modified BSD license. For more information on Dojo licensing, see:
- http://dojotoolkit.org/community/licensing.shtml
- */
- dojo.provide("dojo.widget.Editor2Plugin.AlwaysShowToolbar");
- dojo.event.topic.subscribe("dojo.widget.Editor2::onLoad", function (editor) {
- if (editor.toolbarAlwaysVisible) {
- var p = new dojo.widget.Editor2Plugin.AlwaysShowToolbar(editor);
- }
- });
- dojo.declare("dojo.widget.Editor2Plugin.AlwaysShowToolbar", null, function (editor) {
- this.editor = editor;
- this.editor.registerLoadedPlugin(this);
- this.setup();
- }, {_scrollSetUp:false, _fixEnabled:false, _scrollThreshold:false, _handleScroll:true, setup:function () {
- var tdn = this.editor.toolbarWidget;
- if (!tdn.tbBgIframe) {
- tdn.tbBgIframe = new dojo.html.BackgroundIframe(tdn.domNode);
- tdn.tbBgIframe.onResized();
- }
- this.scrollInterval = setInterval(dojo.lang.hitch(this, "globalOnScrollHandler"), 100);
- dojo.event.connect("before", this.editor.toolbarWidget, "destroy", this, "destroy");
- }, globalOnScrollHandler:function () {
- var isIE = dojo.render.html.ie;
- if (!this._handleScroll) {
- return;
- }
- var dh = dojo.html;
- var tdn = this.editor.toolbarWidget.domNode;
- var db = dojo.body();
- if (!this._scrollSetUp) {
- this._scrollSetUp = true;
- var editorWidth = dh.getMarginBox(this.editor.domNode).width;
- this._scrollThreshold = dh.abs(tdn, true).y;
- if ((isIE) && (db) && (dh.getStyle(db, "background-image") == "none")) {
- with (db.style) {
- backgroundImage = "url(" + dojo.uri.moduleUri("dojo.widget", "templates/images/blank.gif") + ")";
- backgroundAttachment = "fixed";
- }
- }
- }
- var scrollPos = (window["pageYOffset"]) ? window["pageYOffset"] : (document["documentElement"] || document["body"]).scrollTop;
- if (scrollPos > this._scrollThreshold) {
- if (!this._fixEnabled) {
- var tdnbox = dojo.html.getMarginBox(tdn);
- this.editor.editorObject.style.marginTop = tdnbox.height + "px";
- if (isIE) {
- tdn.style.left = dojo.html.abs(tdn, dojo.html.boxSizing.MARGIN_BOX).x;
- if (tdn.previousSibling) {
- this._IEOriginalPos = ["after", tdn.previousSibling];
- } else {
- if (tdn.nextSibling) {
- this._IEOriginalPos = ["before", tdn.nextSibling];
- } else {
- this._IEOriginalPos = ["", tdn.parentNode];
- }
- }
- dojo.body().appendChild(tdn);
- dojo.html.addClass(tdn, "IEFixedToolbar");
- } else {
- with (tdn.style) {
- position = "fixed";
- top = "0px";
- }
- }
- tdn.style.width = tdnbox.width + "px";
- tdn.style.zIndex = 1000;
- this._fixEnabled = true;
- }
- if (!dojo.render.html.safari) {
- var eHeight = (this.height) ? parseInt(this.editor.height) : this.editor._lastHeight;
- if (scrollPos > (this._scrollThreshold + eHeight)) {
- tdn.style.display = "none";
- } else {
- tdn.style.display = "";
- }
- }
- } else {
- if (this._fixEnabled) {
- (this.editor.object || this.editor.iframe).style.marginTop = null;
- with (tdn.style) {
- position = "";
- top = "";
- zIndex = "";
- display = "";
- }
- if (isIE) {
- tdn.style.left = "";
- dojo.html.removeClass(tdn, "IEFixedToolbar");
- if (this._IEOriginalPos) {
- dojo.html.insertAtPosition(tdn, this._IEOriginalPos[1], this._IEOriginalPos[0]);
- this._IEOriginalPos = null;
- } else {
- dojo.html.insertBefore(tdn, this.editor.object || this.editor.iframe);
- }
- }
- tdn.style.width = "";
- this._fixEnabled = false;
- }
- }
- }, destroy:function () {
- this._IEOriginalPos = null;
- this._handleScroll = false;
- clearInterval(this.scrollInterval);
- this.editor.unregisterLoadedPlugin(this);
- if (dojo.render.html.ie) {
- dojo.html.removeClass(this.editor.toolbarWidget.domNode, "IEFixedToolbar");
- }
- }});