Commit 02f579fe authored by Oleg.Korshul's avatar Oleg.Korshul Committed by Alexander.Trofimov

добавлен AscBrowser

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@51470 954022d7-b5bf-4e40-9824-e11837661b57
parent 1a312870
......@@ -15,6 +15,7 @@
"sdk": {
"src": [
"../Common/Build/License.js",
"../Common/browser.js",
"../Common/docscoapisettings.js",
"../Common/docscoapicommon.js",
"../Common/docscoapi.js",
......
......@@ -21,6 +21,7 @@
"sdk": {
"src": [
"../Common/Build/License.js",
"../Common/browser.js",
"../Common/docscoapisettings.js",
"../Common/docscoapicommon.js",
"../Common/docscoapi.js",
......
......@@ -22,6 +22,7 @@
"src": [
"../Common/Build/License.js",
"../Common/Merge/NodejsEnv.js",
"../Common/browser.js",
"../Common/docscoapisettings.js",
"../Common/docscoapicommon.js",
"../Common/docscoapi.js",
......
var g_bIsAppleDevices = (navigator.userAgent.match(/(iPad|iPhone|iPod)/g) ? true : false);
var g_bIsAppleDevices = AscBrowser.isAppleDevices;
function CGlyphData()
{
......@@ -1177,10 +1177,7 @@ function CFontManager()
if (is_init_raster_memory === true)
{
var __bIsIE = (/MSIE/g.test(navigator.userAgent)) ? true : false;
var __bIsARM = (/ARM/g.test(navigator.userAgent)) ? true : false;
if (__bIsIE && !__bIsARM)
if (AscBrowser.isIE && !AscBrowser.isArm)
{
this.RasterMemory = new CRasterHeapTotal();
this.RasterMemory.CreateFirstChuck();
......
var AscBrowser = {
userAgent : "",
isIE : false,
isMacOs : false,
isSafariMacOs : false,
isAppleDevices : false,
isAndroid : false,
isMobile : false,
isGecko : false,
isChrome : false,
isOpera : false,
isWebkit : false,
isSafari : false,
isArm : false
};
// user agent lower case
AscBrowser.userAgent = navigator.userAgent.toLowerCase();
// ie detect
AscBrowser.isIE = (AscBrowser.userAgent.indexOf("msie") > -1 ||
AscBrowser.userAgent.indexOf("trident") > -1);
// macOs detect
AscBrowser.isMacOs = (AscBrowser.userAgent.indexOf('mac') > -1);
// safari detect
AscBrowser.isSafari = (AscBrowser.userAgent.indexOf("safari") > -1);
// macOs safari detect
AscBrowser.isSafariMacOs = (AscBrowser.isSafari && AscBrowser.isMacOs) ? true : false;
if (AscBrowser.isSafariMacOs)
{
// браузеры под мак все определяются как сафари
// проверим на дополнительные параметры
if (AscBrowser.userAgent.indexOf('chrome') > -1)
AscBrowser.isSafariMacOs = false;
}
// apple devices detect
AscBrowser.isAppleDevices = (AscBrowser.userAgent.indexOf("ipad") > -1 ||
AscBrowser.userAgent.indexOf("iphone") > -1 ||
AscBrowser.userAgent.indexOf("ipod") > -1);
// android devices detect
AscBrowser.isAndroid = (AscBrowser.userAgent.indexOf("android") > -1);
// mobile detect
AscBrowser.isMobile = /android|avantgo|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od|ad)|iris|kindle|lge |maemo|midp|mmp|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(navigator.userAgent || navigator.vendor || window.opera);
// gecko detect
AscBrowser.isGecko = (AscBrowser.userAgent.indexOf("gecko") > -1);
// chrome detect
AscBrowser.isChrome = (AscBrowser.userAgent.indexOf("chrome") > -1);
// opera detect
AscBrowser.isOpera = (window.opera) ? true : false;
// webkit detect
AscBrowser.isWebkit = (AscBrowser.userAgent.indexOf("webkit") > -1);
// arm detect
AscBrowser.isArm = (AscBrowser.userAgent.indexOf("arm") > -1);
\ No newline at end of file
......@@ -21,17 +21,10 @@
}
}
window.USER_AGENT_MACOS = (navigator.userAgent.toLowerCase().indexOf('mac') > -1) ? true : false;
window.USER_AGENT_SAFARI_MACOS = (navigator.userAgent.toLowerCase().indexOf('safari') > -1 && window.USER_AGENT_MACOS) ? true : false;
if (window.USER_AGENT_SAFARI_MACOS)
{
// браузеры под мак все определяются как сафари
// проверим на дополнительные параметры
if (navigator.userAgent.toLowerCase().indexOf('chrome') > -1)
window.USER_AGENT_SAFARI_MACOS = false;
}
window.USER_AGENT_IE = ((/MSIE/g.test(navigator.userAgent)) || window.opera) ? true : false;
window.USER_AGENT_WEBKIT = (navigator.userAgent.toLowerCase().indexOf('webkit') > -1) ? true : false;
window.USER_AGENT_MACOS = AscBrowser.isMacOs;
window.USER_AGENT_SAFARI_MACOS = AscBrowser.isSafariMacOs;
window.USER_AGENT_IE = AscBrowser.isIE || AscBrowser.isOpera;
window.USER_AGENT_WEBKIT = AscBrowser.isWebkit;
window.GlobalPasteFlagCounter = 0;
window.GlobalPasteFlag = false;
......@@ -116,7 +109,7 @@ function Editor_Copy_Button(api, bCut)
}
}
}*/
if(/MSIE/g.test(navigator.userAgent))
if(AscBrowser.isIE)
{
var ElemToSelect = Editor_Copy_GetElem(api);
ElemToSelect.style.display = "block";
......@@ -231,7 +224,7 @@ function Editor_Copy(api, bCut)
//� FF 8 ����� ��������� selectNodeContents ���������� � ������������ div, ����� ����� �������� � FF8 � ������ ��������� ����� ��� ����� ������ ��������� �������������� node
//�������� ���� ��� ��� ��������� ��������� �� ����������. Chrome ������ ��������� ������ ����� ����� ������ ����������
var is_gecko = window.navigator.userAgent.indexOf('Gecko/') >= 0;
var is_gecko = AscBrowser.isGecko;
if(is_gecko)
{
ElemToSelect.appendChild( document.createTextNode( '\xa0' ) );
......@@ -2258,7 +2251,7 @@ function Editor_Paste_GetElem(api, bClean)
pastebin.setAttribute( 'id', PASTE_ELEMENT_ID );
pastebin.className = "sdk-element";
if (/MSIE/g.test(navigator.userAgent))
if (AscBrowser.isIE)
pastebin.style.position = 'fixed';
else
pastebin.style.position = 'absolute';
......@@ -2313,7 +2306,7 @@ function Editor_Paste_GetElem(api, bClean)
}
function Editor_Paste_Button(api)
{
if(/MSIE/g.test(navigator.userAgent))
if(AscBrowser.isIE)
{
document.body.style.MozUserSelect = "text";
delete document.body.style["-khtml-user-select"];
......@@ -2410,13 +2403,7 @@ function Editor_Paste(api, bClean)
var oWordControl = api.WordControl;
oWordControl.bIsEventPaste = false;
var oDocument = oWordControl.m_oLogicDocument;
if(isOnlyLocalBufferSafariWord && navigator.userAgent.toLowerCase().indexOf('safari') > -1 && navigator.userAgent.toLowerCase().indexOf('mac'))
{
var ElemToSelect = document.getElementById( "SelectId" );
if(ElemToSelect)
Editor_Paste_Exec(api, ElemToSelect);
return;
}
if(false == CanPaste(oDocument))
return;
......@@ -2511,7 +2498,7 @@ function Body_Paste(api, e)
if (e && e.clipboardData && e.clipboardData.getData) {// Webkit - get data from clipboard, put into editdiv, cleanup, then cancel event
var bExist = false;
//������ chrome ��������� �������� 'text/html', safari ������ 'text/plain'
var is_chrome = navigator.userAgent.toLowerCase().indexOf('chrome') > -1;
var is_chrome = AscBrowser.isChrome;
var sHtml = null;
var fPasteHtml = function(sHtml)
......@@ -5871,7 +5858,7 @@ PasteProcessor.prototype =
}
}
}
else if (nWidth && nHeight && (/msie/i.test(navigator.userAgent)))
else if (nWidth && nHeight && AscBrowser.isIE)
{
var binary_shape = node.getAttribute("alt");
if (typeof binary_shape === "string")
......
......@@ -33,6 +33,8 @@
//]]>
</script>
<script type="text/javascript" src="../Common/browser.js"></script>
<script src="../Common/downloaderfiles.js"></script>
<script type="text/javascript" src="../Common/3rdparty/Underscore/underscore-min.js"></script>
<script type="text/javascript" src="../Common/3rdparty/Sockjs/sockjs-0.3.min.js"></script>
......
......@@ -110,6 +110,7 @@
<script type="text/javascript">
window.g_debug_mode = true;
</script>
<script type="text/javascript" src="../../../../OfficeWeb/Common/browser.js"></script>
<script type="text/javascript" src="../../../../OfficeWeb/Common/editorscommon.js"></script>
<script type="text/javascript" src="../../../../OfficeWeb/Common/downloaderfiles.js"></script>
<script type="text/javascript" src="../../../../OfficeWeb/Common/docscoapicommon.js"></script>
......
......@@ -99,10 +99,10 @@ function CBrush()
var MATRIX_ORDER_PREPEND = 0;
var MATRIX_ORDER_APPEND = 1;
var bIsChrome = (null == window.chrome) ? 0 : 1;
var bIsSafari = (null == window.safari) ? 0 : 1;
var bIsIE = (/MSIE/g.test(navigator.userAgent)) ? true : false;
var bIsAndroid = (navigator.userAgent.indexOf("Android") >= 0 || navigator.userAgent.indexOf("android") >= 0) ? true : false;
var bIsChrome = AscBrowser.isChrome;
var bIsSafari = AscBrowser.isSafari;
var bIsIE = AscBrowser.isIE;
var bIsAndroid = AscBrowser.isAndroid;
function deg2rad(deg){
return deg * Math.PI / 180.0;
......
......@@ -221,7 +221,7 @@
t.elementText.style.top = '-100px';
t.elementText.style.overflow = 'hidden';
t.elementText.style.zIndex = -1000;
//if(/MSIE/g.test(navigator.userAgent))
//if(AscBrowser.isIE)
t.elementText.style.display = ELEMENT_DISPAY_STYLE;
t.elementText.setAttribute("contentEditable", true);
......@@ -277,7 +277,7 @@
copyRangeButton: function (range, worksheet, isCut) {
if(/MSIE/g.test(navigator.userAgent))
if(AscBrowser.isIE)
{
this._cleanElement();
this.element.appendChild(this._makeTableNode(range, worksheet));
......@@ -287,7 +287,7 @@
if (window.getSelection) {// all browsers, except IE before version 9
selection = window.getSelection();
rangeToSelect = doc.createRange();
if (window.navigator.userAgent.toLowerCase().indexOf('gecko/') >= 0) {
if (AscBrowser.isGecko) {
t.element.appendChild(doc.createTextNode('\xa0'));
t.element.insertBefore(doc.createTextNode('\xa0'), t.element.firstChild);
rangeToSelect.setStartAfter(t.element.firstChild);
......@@ -331,7 +331,7 @@
pasteRangeButton: function (worksheet)
{
if(/MSIE/g.test(navigator.userAgent))
if(AscBrowser.isIE)
{
var t = this;
document.body.style.MozUserSelect = "text";
......@@ -384,7 +384,7 @@
var outer;
// Workaround: webkit неправильно селектит один узел
if (window.navigator.userAgent.toLowerCase().indexOf('webkit') >= 0 && nodes.length === 1) {
if (AscBrowser.isWebkit && nodes.length === 1) {
outer = doc.createElement("B");
outer.style.fontWeight = "normal";
outer.appendChild(nodes[0]);
......@@ -404,14 +404,14 @@
},
copyCellValueButton: function (value, background) {
if(/MSIE/g.test(navigator.userAgent))
if(AscBrowser.isIE)
{
var t = this;
var nodes = t._makeNodesFromCellValue(value);
var outer;
// Workaround: webkit неправильно селектит один узел
if (window.navigator.userAgent.toLowerCase().indexOf('webkit') >= 0 && nodes.length === 1) {
if (AscBrowser.isWebkit && nodes.length === 1) {
outer = doc.createElement("B");
outer.style.fontWeight = "normal";
outer.appendChild(nodes[0]);
......@@ -429,7 +429,7 @@
if (window.getSelection) {// all browsers, except IE before version 9
selection = window.getSelection();
rangeToSelect = doc.createRange();
if (window.navigator.userAgent.toLowerCase().indexOf('gecko/') >= 0) {
if (AscBrowser.isGecko) {
t.element.appendChild(doc.createTextNode('\xa0'));
t.element.insertBefore(doc.createTextNode('\xa0'), t.element.firstChild);
rangeToSelect.setStartAfter(t.element.firstChild);
......@@ -526,7 +526,7 @@
pasteAsTextButton: function (callback) {
var t = this;
if(/MSIE/g.test(navigator.userAgent))
if(AscBrowser.isIE)
{
//t._paste(function(){t._makeCellValueFromHtml(callback)});
t.elementText.style.display = "block";
......@@ -746,7 +746,7 @@
var t = this;
window.GlobalPasteFlagCounter = 1;
isTruePaste = false;
var is_chrome = navigator.userAgent.toLowerCase().indexOf('chrome') > -1;
var is_chrome = AscBrowser.isChrome;
document.body.style.MozUserSelect = "text";
delete document.body.style["-khtml-user-select"];
delete document.body.style["-o-user-select"];
......@@ -807,7 +807,7 @@
pastebin.style.display = ELEMENT_DISPAY_STYLE;
if(/MSIE/g.test(navigator.userAgent))
if(AscBrowser.isIE)
pastebin.style.display = ELEMENT_DISPAY_STYLE;
if (callback && callback.call) {callback();}
......@@ -979,7 +979,7 @@
if (e && e.clipboardData && e.clipboardData.getData) {// Webkit - get data from clipboard, put into editdiv, cleanup, then cancel event
var bExist = false;
//только chrome разрешает получать 'text/html', safari только 'text/plain'
var is_chrome = navigator.userAgent.toLowerCase().indexOf('chrome') > -1;
var is_chrome = AscBrowser.isChrome;
var sHtml = null;
var isText = false;
var fTest = function(types, sPattern)
......@@ -1573,7 +1573,7 @@
var range = worksheet.activeRange.clone(true);
var isMerge = worksheet.model.getRange(new CellAddress(range.r1, range.c1, 0), new CellAddress(range.r2, range.c2, 0));
var testFragment = $.extend(true, {},node);
var is_chrome = navigator.userAgent.toLowerCase().indexOf('chrome') > -1;
var is_chrome = AscBrowser.isChrome;
$(testFragment).children('br').remove();
//в случае если приходит простой текст, преращаем его в корректную html - проблема характерна для FF
......@@ -1991,7 +1991,7 @@
// добавляем дополнительные node
// Оставить этот код для остальных браузеров не получилось. Chrome начала
// вставлять разрыв линии перед первым параграфом
if (window.navigator.userAgent.toLowerCase().indexOf('gecko/') >= 0) {
if (AscBrowser.isGecko) {
t.element.appendChild(doc.createTextNode('\xa0'));
t.element.insertBefore(doc.createTextNode('\xa0'), t.element.firstChild);
rangeToSelect.setStartAfter(t.element.firstChild);
......@@ -2847,17 +2847,11 @@
}
)(jQuery, window);
window.USER_AGENT_MACOS = (navigator.userAgent.toLowerCase().indexOf('mac') > -1) ? true : false;
window.USER_AGENT_SAFARI_MACOS = (navigator.userAgent.toLowerCase().indexOf('safari') > -1 && window.USER_AGENT_MACOS) ? true : false;
window.USER_AGENT_WEBKIT = (navigator.userAgent.toLowerCase().indexOf('webkit') > -1) ? true : false;
window.USER_AGENT_IE = ((/MSIE/g.test(navigator.userAgent)) || window.opera) ? true : false;
if (window.USER_AGENT_SAFARI_MACOS)
{
// браузеры под мак все определяются как сафари
// проверим на дополнительные параметры
if (navigator.userAgent.toLowerCase().indexOf('chrome') > -1)
window.USER_AGENT_SAFARI_MACOS = false;
}
window.USER_AGENT_MACOS = AscBrowser.isMacOs;
window.USER_AGENT_SAFARI_MACOS = AscBrowser.isSafariMacOs;
window.USER_AGENT_IE = AscBrowser.isIE || AscBrowser.isOpera;
window.USER_AGENT_WEBKIT = AscBrowser.isWebkit;
window.GlobalPasteFlag = false;
window.GlobalPasteFlagCounter = 0;
var COPY_ELEMENT_ID = "clipboard-helper";
......
......@@ -4,7 +4,7 @@ var g_dDpiY = 96.0;
var g_dKoef_mm_to_pix = g_dDpiX / 25.4;
var g_dKoef_pix_to_mm = 25.4 / g_dDpiX;
var g_bIsMobile = /android|avantgo|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od|ad)|iris|kindle|lge |maemo|midp|mmp|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(navigator.userAgent || navigator.vendor || window.opera);
var g_bIsMobile = AscBrowser.isMobile;
var g_bIsMouseUpLockedSend = false;
var Page_Width = 297;
......@@ -179,7 +179,7 @@ function CEditorPage(api)
this.DrawingFreeze = false;
this.m_bIsIE = (/MSIE/g.test(navigator.userAgent)) ? true : false;
this.m_bIsIE = AscBrowser.isIE;
// сплиттеры (для табнейлов и для заметок)
this.Splitter1Pos = 0;
......
......@@ -32,6 +32,7 @@
<script type="text/javascript" src="menu/Statusbar.js"></script>
<!-- SDK -->
<script type="text/javascript" src="../../OfficeWeb/Common/browser.js"></script>
<script type="text/javascript" src="../../OfficeWeb/Common/FontsFreeType/font_engine.js"></script>
<script type="text/javascript" src="../../OfficeWeb/Common/FontsFreeType/FontFile.js"></script>
......
......@@ -106,6 +106,7 @@
<script type="text/javascript" src="../../common/locale.js"></script>
<!-- sdk -->
<script type="text/javascript" src="../../../../OfficeWeb/Common/browser.js"></script>
<script type="text/javascript" src="../../../../OfficeWeb/Common/FontsFreeType/font_engine.js"></script>
<script type="text/javascript" src="../../../../OfficeWeb/Common/FontsFreeType/FontFile.js"></script>
......
......@@ -179,7 +179,7 @@ function CFontFileLoader(id)
g_fonts_streams[__font_data_idx] = new FT_Stream(_uintData, _uintData.length);
oThis.SetStreamIndex(__font_data_idx);
}
else if (/msie/i.test(navigator.userAgent))
else if (AscBrowser.isIE)
{
var _response = new VBArray(this["responseBody"]).toArray();
......
......@@ -100,10 +100,10 @@ function CBrush()
var MATRIX_ORDER_PREPEND = 0;
var MATRIX_ORDER_APPEND = 1;
var bIsChrome = (null == window.chrome) ? 0 : 1;
var bIsSafari = (null == window.safari) ? 0 : 1;
var bIsIE = (/MSIE/g.test(navigator.userAgent)) ? true : false;
var bIsAndroid = (navigator.userAgent.indexOf("Android") >= 0 || navigator.userAgent.indexOf("android") >= 0) ? true : false;
var bIsChrome = AscBrowser.isChrome;
var bIsSafari = AscBrowser.isSafari;
var bIsIE = AscBrowser.isIE;
var bIsAndroid = AscBrowser.isAndroid;
function deg2rad(deg){
return deg * Math.PI / 180.0;
......
......@@ -4,7 +4,7 @@ var g_dDpiY = 96.0;
var g_dKoef_mm_to_pix = g_dDpiX / 25.4;
var g_dKoef_pix_to_mm = 25.4 / g_dDpiX;
var g_bIsMobile = /android|avantgo|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od|ad)|iris|kindle|lge |maemo|midp|mmp|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(navigator.userAgent || navigator.vendor || window.opera);
var g_bIsMobile = AscBrowser.isMobile;
var g_bIsMouseUpLockedSend = false;
var Page_Width = 210;
......@@ -36,7 +36,7 @@ var orientation_Landscape = 0x01;
var tableSpacingMinValue = 0.02;//0.02мм
if ((/MSIE/g.test(navigator.userAgent)) || window.opera)
if (AscBrowser.isIE || window.opera)
{
// не убирать!!! это для ие. чтобы не селектились элементы
document.onselectstart= function() {
......@@ -70,7 +70,7 @@ function CEditorPage(api)
this.ReaderModeDiv = null;
this.m_oOverlayApi = new COverlay();
this.m_bIsIE = ((/MSIE/g.test(navigator.userAgent)) || window.opera) ? true : false;
this.m_bIsIE = (AscBrowser.isIE || window.opera) ? true : false;
this.m_oPanelRight_buttonRulers = null;
this.m_oPanelRight_vertScroll = null;
......
......@@ -19,6 +19,9 @@
<script type="text/javascript" src="menu/js/jquery.clickmenu.js"></script>
<script type="text/javascript" src="menu/js/jquery-ui-1.8.13.custom.min.js"></script>
<script type="text/javascript" src="menu/js/ui.spinner.min.js"></script>
<script type="text/javascript" src="../Common/browser.js"></script>
<script src="../Common/downloaderfiles.js"></script>
<script src="../Common/docscoapisettings.js"></script>
<script src="../Common/docscoapicommon.js"></script>
......
......@@ -91,6 +91,7 @@
<script type="text/javascript" src="../../../3rdparty/underscore/underscore-min.js"></script>
<!-- application -->
<script type="text/javascript" src="../../../../OfficeWeb/Common/browser.js"></script>
<script type="text/javascript" src="../../../../OfficeWeb/Common/editorscommon.js"></script>
<script type="text/javascript" src="../../../../OfficeWeb/Common/downloaderfiles.js"></script>
<script type="text/javascript" src="../../../../OfficeWeb/Common/docscoapicommon.js"></script>
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment