eoss-ui 0.7.91 → 0.7.92
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/button-group.js +45 -0
- package/lib/button.js +45 -0
- package/lib/calogin.js +45 -0
- package/lib/checkbox-group.js +45 -0
- package/lib/data-table-form.js +45 -0
- package/lib/data-table.js +57 -7
- package/lib/date-picker.js +45 -0
- package/lib/dialog.js +52 -11
- package/lib/eoss-ui.common.js +289 -174
- package/lib/flow-group.js +81 -12
- package/lib/flow-list.js +45 -0
- package/lib/flow.js +45 -0
- package/lib/form.js +45 -0
- package/lib/handle-user.js +45 -0
- package/lib/handler.js +45 -0
- package/lib/icon.js +45 -0
- package/lib/index.js +1 -1
- package/lib/input-number.js +45 -0
- package/lib/input.js +45 -0
- package/lib/login.js +52 -6
- package/lib/main.js +160 -87
- package/lib/nav.js +45 -0
- package/lib/page.js +45 -0
- package/lib/pagination.js +48 -3
- package/lib/player.js +45 -0
- package/lib/qr-code.js +45 -0
- package/lib/radio-group.js +45 -0
- package/lib/retrial-auth.js +67 -6
- package/lib/select-ganged.js +45 -0
- package/lib/select.js +45 -0
- package/lib/selector-panel.js +45 -0
- package/lib/selector.js +45 -0
- package/lib/sizer.js +45 -0
- package/lib/steps.js +45 -0
- package/lib/switch.js +45 -0
- package/lib/table-form.js +45 -0
- package/lib/tabs.js +45 -0
- package/lib/tips.js +45 -0
- package/lib/tree-group.js +48 -3
- package/lib/tree.js +45 -0
- package/lib/upload.js +45 -0
- package/lib/utils/util.js +45 -0
- package/lib/wujie.js +45 -0
- package/lib/wxlogin.js +45 -0
- package/package.json +1 -1
- package/packages/.DS_Store +0 -0
- package/packages/data-table/src/main.vue +7 -3
- package/packages/dialog/.DS_Store +0 -0
- package/packages/dialog/src/main.vue +5 -11
- package/packages/flow/.DS_Store +0 -0
- package/packages/flow-group/src/main.vue +34 -12
- package/packages/flow-list/.DS_Store +0 -0
- package/packages/login/src/main.vue +2 -1
- package/packages/main/.DS_Store +0 -0
- package/packages/main/src/default/userinfo.vue +22 -14
- package/packages/main/src/main.vue +11 -12
- package/packages/main/src/simplicity/index.vue +19 -14
- package/packages/main/src/simplicity/userinfo.vue +18 -13
- package/packages/main/src/simplicityTop/index.vue +1 -1
- package/packages/main/src/simplicityTop/userinfo.vue +18 -13
- package/packages/pagination/src/main.vue +4 -4
- package/packages/retrial-auth/src/main.vue +23 -4
- package/packages/select/.DS_Store +0 -0
- package/packages/tree-group/src/main.vue +1 -2
- package/src/.DS_Store +0 -0
- package/src/index.js +1 -1
- package/src/utils/util.js +45 -0
package/lib/flow-group.js
CHANGED
|
@@ -2138,6 +2138,10 @@ var getWeekday = function getWeekday(date) {
|
|
|
2138
2138
|
var getWinTop = function getWinTop(wind) {
|
|
2139
2139
|
wind = wind ? wind : window.__WUJIE_RAW_WINDOW__ ? window.__WUJIE_RAW_WINDOW__ : window;
|
|
2140
2140
|
try {
|
|
2141
|
+
// 检查是否已经是顶层窗口,避免无限递归
|
|
2142
|
+
if (wind === wind.parent) {
|
|
2143
|
+
return wind;
|
|
2144
|
+
}
|
|
2141
2145
|
wind.parent.document;
|
|
2142
2146
|
return getWinTop(wind.parent);
|
|
2143
2147
|
} catch (error) {
|
|
@@ -2145,6 +2149,46 @@ var getWinTop = function getWinTop(wind) {
|
|
|
2145
2149
|
}
|
|
2146
2150
|
};
|
|
2147
2151
|
|
|
2152
|
+
/**
|
|
2153
|
+
* getWinTopProperty
|
|
2154
|
+
* @desc 安全获取顶层窗口的属性,避免跨域访问错误
|
|
2155
|
+
* @param {string} propertyName - 要获取的属性名
|
|
2156
|
+
* @param {any} defaultValue - 默认值,当属性获取失败时返回
|
|
2157
|
+
* @return {any} 属性值或默认值
|
|
2158
|
+
**/
|
|
2159
|
+
var getWinTopProperty = function getWinTopProperty(propertyName, defaultValue) {
|
|
2160
|
+
// 1. 先尝试获取 window.top 的属性
|
|
2161
|
+
try {
|
|
2162
|
+
if (window.top && window.top[propertyName] !== undefined) {
|
|
2163
|
+
return window.top[propertyName];
|
|
2164
|
+
}
|
|
2165
|
+
} catch (topError) {}
|
|
2166
|
+
// window.top 跨域,继续尝试
|
|
2167
|
+
|
|
2168
|
+
|
|
2169
|
+
// 2. 尝试获取同源的最上层窗口的属性
|
|
2170
|
+
try {
|
|
2171
|
+
var sameOriginTop = getWinTop();
|
|
2172
|
+
if (sameOriginTop && sameOriginTop[propertyName] !== undefined) {
|
|
2173
|
+
return sameOriginTop[propertyName];
|
|
2174
|
+
}
|
|
2175
|
+
} catch (sameOriginError) {}
|
|
2176
|
+
// 同源最上层窗口获取失败,继续尝试
|
|
2177
|
+
|
|
2178
|
+
|
|
2179
|
+
// 3. 尝试获取当前窗口的属性
|
|
2180
|
+
try {
|
|
2181
|
+
if (window[propertyName] !== undefined) {
|
|
2182
|
+
return window[propertyName];
|
|
2183
|
+
}
|
|
2184
|
+
} catch (currentWinError) {}
|
|
2185
|
+
// 当前窗口获取失败,返回默认值
|
|
2186
|
+
|
|
2187
|
+
|
|
2188
|
+
// 4. 所有尝试都失败,返回默认值
|
|
2189
|
+
return defaultValue;
|
|
2190
|
+
};
|
|
2191
|
+
|
|
2148
2192
|
/**
|
|
2149
2193
|
* getZoom
|
|
2150
2194
|
* @desc 获取缩放比
|
|
@@ -3890,6 +3934,7 @@ var winTopOpen = function winTopOpen(config) {
|
|
|
3890
3934
|
getValues: getValues,
|
|
3891
3935
|
getWeekday: getWeekday,
|
|
3892
3936
|
getWinTop: getWinTop,
|
|
3937
|
+
getWinTopProperty: getWinTopProperty,
|
|
3893
3938
|
handlerUrl: handlerUrl,
|
|
3894
3939
|
hasChars: hasChars,
|
|
3895
3940
|
hasClass: hasClass,
|
|
@@ -4567,7 +4612,7 @@ module.exports = require("qs");
|
|
|
4567
4612
|
// ESM COMPAT FLAG
|
|
4568
4613
|
__webpack_require__.r(__webpack_exports__);
|
|
4569
4614
|
|
|
4570
|
-
// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/flow-group/src/main.vue?vue&type=template&id=
|
|
4615
|
+
// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/flow-group/src/main.vue?vue&type=template&id=31ce53a2&
|
|
4571
4616
|
var render = function () {
|
|
4572
4617
|
var _vm = this
|
|
4573
4618
|
var _h = _vm.$createElement
|
|
@@ -5834,7 +5879,7 @@ var staticRenderFns = []
|
|
|
5834
5879
|
render._withStripped = true
|
|
5835
5880
|
|
|
5836
5881
|
|
|
5837
|
-
// CONCATENATED MODULE: ./packages/flow-group/src/main.vue?vue&type=template&id=
|
|
5882
|
+
// CONCATENATED MODULE: ./packages/flow-group/src/main.vue?vue&type=template&id=31ce53a2&
|
|
5838
5883
|
|
|
5839
5884
|
// EXTERNAL MODULE: ./src/utils/util.js + 1 modules
|
|
5840
5885
|
var util = __webpack_require__(0);
|
|
@@ -6510,13 +6555,25 @@ var _extends = Object.assign || function (target) { for (var i = 1; i < argument
|
|
|
6510
6555
|
util["a" /* default */].busEmit(this, _extends({
|
|
6511
6556
|
method: 'windowClose'
|
|
6512
6557
|
}, JSON.parse(windowOpenConfig)));
|
|
6513
|
-
|
|
6558
|
+
try {
|
|
6559
|
+
var topWin = util["a" /* default */].getWinTop();
|
|
6560
|
+
topWin.windowClose(JSON.parse(windowOpenConfig));
|
|
6561
|
+
} catch (error) {
|
|
6562
|
+
console.warn('Failed to call windowClose:', error);
|
|
6563
|
+
}
|
|
6514
6564
|
} else if (this.closeDialog && this.esDialog) {
|
|
6515
6565
|
this.esDialog.handleClose();
|
|
6516
|
-
} else
|
|
6517
|
-
|
|
6518
|
-
|
|
6519
|
-
|
|
6566
|
+
} else {
|
|
6567
|
+
try {
|
|
6568
|
+
var _topWin = util["a" /* default */].getWinTop();
|
|
6569
|
+
if (_topWin.COOS_SDK) {
|
|
6570
|
+
_topWin.COOS_SDK.closePopup && _topWin.COOS_SDK.closePopup();
|
|
6571
|
+
} else if (_topWin.opener) {
|
|
6572
|
+
_topWin.close();
|
|
6573
|
+
}
|
|
6574
|
+
} catch (error) {
|
|
6575
|
+
console.warn('Failed to close window/popup:', error);
|
|
6576
|
+
}
|
|
6520
6577
|
}
|
|
6521
6578
|
if (this.events && this.events.success) {
|
|
6522
6579
|
this.events.success();
|
|
@@ -6529,13 +6586,25 @@ var _extends = Object.assign || function (target) { for (var i = 1; i < argument
|
|
|
6529
6586
|
util["a" /* default */].busEmit(this, _extends({
|
|
6530
6587
|
method: 'windowClose'
|
|
6531
6588
|
}, JSON.parse(windowOpenConfig)));
|
|
6532
|
-
|
|
6589
|
+
try {
|
|
6590
|
+
var topWin = util["a" /* default */].getWinTop();
|
|
6591
|
+
topWin.windowClose(JSON.parse(windowOpenConfig));
|
|
6592
|
+
} catch (error) {
|
|
6593
|
+
console.warn('Failed to call windowClose:', error);
|
|
6594
|
+
}
|
|
6533
6595
|
} else if (this.closeDialog && this.esDialog) {
|
|
6534
6596
|
this.esDialog.handleClose();
|
|
6535
|
-
} else
|
|
6536
|
-
|
|
6537
|
-
|
|
6538
|
-
|
|
6597
|
+
} else {
|
|
6598
|
+
try {
|
|
6599
|
+
var _topWin2 = util["a" /* default */].getWinTop();
|
|
6600
|
+
if (_topWin2.COOS_SDK) {
|
|
6601
|
+
_topWin2.COOS_SDK.closePopup && _topWin2.COOS_SDK.closePopup();
|
|
6602
|
+
} else if (_topWin2.opener) {
|
|
6603
|
+
_topWin2.close();
|
|
6604
|
+
}
|
|
6605
|
+
} catch (error) {
|
|
6606
|
+
console.warn('Failed to close window/popup:', error);
|
|
6607
|
+
}
|
|
6539
6608
|
}
|
|
6540
6609
|
this.events && this.events.save(id, event);
|
|
6541
6610
|
this.$emit('save', id, event);
|
package/lib/flow-list.js
CHANGED
|
@@ -2138,6 +2138,10 @@ var getWeekday = function getWeekday(date) {
|
|
|
2138
2138
|
var getWinTop = function getWinTop(wind) {
|
|
2139
2139
|
wind = wind ? wind : window.__WUJIE_RAW_WINDOW__ ? window.__WUJIE_RAW_WINDOW__ : window;
|
|
2140
2140
|
try {
|
|
2141
|
+
// 检查是否已经是顶层窗口,避免无限递归
|
|
2142
|
+
if (wind === wind.parent) {
|
|
2143
|
+
return wind;
|
|
2144
|
+
}
|
|
2141
2145
|
wind.parent.document;
|
|
2142
2146
|
return getWinTop(wind.parent);
|
|
2143
2147
|
} catch (error) {
|
|
@@ -2145,6 +2149,46 @@ var getWinTop = function getWinTop(wind) {
|
|
|
2145
2149
|
}
|
|
2146
2150
|
};
|
|
2147
2151
|
|
|
2152
|
+
/**
|
|
2153
|
+
* getWinTopProperty
|
|
2154
|
+
* @desc 安全获取顶层窗口的属性,避免跨域访问错误
|
|
2155
|
+
* @param {string} propertyName - 要获取的属性名
|
|
2156
|
+
* @param {any} defaultValue - 默认值,当属性获取失败时返回
|
|
2157
|
+
* @return {any} 属性值或默认值
|
|
2158
|
+
**/
|
|
2159
|
+
var getWinTopProperty = function getWinTopProperty(propertyName, defaultValue) {
|
|
2160
|
+
// 1. 先尝试获取 window.top 的属性
|
|
2161
|
+
try {
|
|
2162
|
+
if (window.top && window.top[propertyName] !== undefined) {
|
|
2163
|
+
return window.top[propertyName];
|
|
2164
|
+
}
|
|
2165
|
+
} catch (topError) {}
|
|
2166
|
+
// window.top 跨域,继续尝试
|
|
2167
|
+
|
|
2168
|
+
|
|
2169
|
+
// 2. 尝试获取同源的最上层窗口的属性
|
|
2170
|
+
try {
|
|
2171
|
+
var sameOriginTop = getWinTop();
|
|
2172
|
+
if (sameOriginTop && sameOriginTop[propertyName] !== undefined) {
|
|
2173
|
+
return sameOriginTop[propertyName];
|
|
2174
|
+
}
|
|
2175
|
+
} catch (sameOriginError) {}
|
|
2176
|
+
// 同源最上层窗口获取失败,继续尝试
|
|
2177
|
+
|
|
2178
|
+
|
|
2179
|
+
// 3. 尝试获取当前窗口的属性
|
|
2180
|
+
try {
|
|
2181
|
+
if (window[propertyName] !== undefined) {
|
|
2182
|
+
return window[propertyName];
|
|
2183
|
+
}
|
|
2184
|
+
} catch (currentWinError) {}
|
|
2185
|
+
// 当前窗口获取失败,返回默认值
|
|
2186
|
+
|
|
2187
|
+
|
|
2188
|
+
// 4. 所有尝试都失败,返回默认值
|
|
2189
|
+
return defaultValue;
|
|
2190
|
+
};
|
|
2191
|
+
|
|
2148
2192
|
/**
|
|
2149
2193
|
* getZoom
|
|
2150
2194
|
* @desc 获取缩放比
|
|
@@ -3890,6 +3934,7 @@ var winTopOpen = function winTopOpen(config) {
|
|
|
3890
3934
|
getValues: getValues,
|
|
3891
3935
|
getWeekday: getWeekday,
|
|
3892
3936
|
getWinTop: getWinTop,
|
|
3937
|
+
getWinTopProperty: getWinTopProperty,
|
|
3893
3938
|
handlerUrl: handlerUrl,
|
|
3894
3939
|
hasChars: hasChars,
|
|
3895
3940
|
hasClass: hasClass,
|
package/lib/flow.js
CHANGED
|
@@ -2137,6 +2137,10 @@ var getWeekday = function getWeekday(date) {
|
|
|
2137
2137
|
var getWinTop = function getWinTop(wind) {
|
|
2138
2138
|
wind = wind ? wind : window.__WUJIE_RAW_WINDOW__ ? window.__WUJIE_RAW_WINDOW__ : window;
|
|
2139
2139
|
try {
|
|
2140
|
+
// 检查是否已经是顶层窗口,避免无限递归
|
|
2141
|
+
if (wind === wind.parent) {
|
|
2142
|
+
return wind;
|
|
2143
|
+
}
|
|
2140
2144
|
wind.parent.document;
|
|
2141
2145
|
return getWinTop(wind.parent);
|
|
2142
2146
|
} catch (error) {
|
|
@@ -2144,6 +2148,46 @@ var getWinTop = function getWinTop(wind) {
|
|
|
2144
2148
|
}
|
|
2145
2149
|
};
|
|
2146
2150
|
|
|
2151
|
+
/**
|
|
2152
|
+
* getWinTopProperty
|
|
2153
|
+
* @desc 安全获取顶层窗口的属性,避免跨域访问错误
|
|
2154
|
+
* @param {string} propertyName - 要获取的属性名
|
|
2155
|
+
* @param {any} defaultValue - 默认值,当属性获取失败时返回
|
|
2156
|
+
* @return {any} 属性值或默认值
|
|
2157
|
+
**/
|
|
2158
|
+
var getWinTopProperty = function getWinTopProperty(propertyName, defaultValue) {
|
|
2159
|
+
// 1. 先尝试获取 window.top 的属性
|
|
2160
|
+
try {
|
|
2161
|
+
if (window.top && window.top[propertyName] !== undefined) {
|
|
2162
|
+
return window.top[propertyName];
|
|
2163
|
+
}
|
|
2164
|
+
} catch (topError) {}
|
|
2165
|
+
// window.top 跨域,继续尝试
|
|
2166
|
+
|
|
2167
|
+
|
|
2168
|
+
// 2. 尝试获取同源的最上层窗口的属性
|
|
2169
|
+
try {
|
|
2170
|
+
var sameOriginTop = getWinTop();
|
|
2171
|
+
if (sameOriginTop && sameOriginTop[propertyName] !== undefined) {
|
|
2172
|
+
return sameOriginTop[propertyName];
|
|
2173
|
+
}
|
|
2174
|
+
} catch (sameOriginError) {}
|
|
2175
|
+
// 同源最上层窗口获取失败,继续尝试
|
|
2176
|
+
|
|
2177
|
+
|
|
2178
|
+
// 3. 尝试获取当前窗口的属性
|
|
2179
|
+
try {
|
|
2180
|
+
if (window[propertyName] !== undefined) {
|
|
2181
|
+
return window[propertyName];
|
|
2182
|
+
}
|
|
2183
|
+
} catch (currentWinError) {}
|
|
2184
|
+
// 当前窗口获取失败,返回默认值
|
|
2185
|
+
|
|
2186
|
+
|
|
2187
|
+
// 4. 所有尝试都失败,返回默认值
|
|
2188
|
+
return defaultValue;
|
|
2189
|
+
};
|
|
2190
|
+
|
|
2147
2191
|
/**
|
|
2148
2192
|
* getZoom
|
|
2149
2193
|
* @desc 获取缩放比
|
|
@@ -3889,6 +3933,7 @@ var winTopOpen = function winTopOpen(config) {
|
|
|
3889
3933
|
getValues: getValues,
|
|
3890
3934
|
getWeekday: getWeekday,
|
|
3891
3935
|
getWinTop: getWinTop,
|
|
3936
|
+
getWinTopProperty: getWinTopProperty,
|
|
3892
3937
|
handlerUrl: handlerUrl,
|
|
3893
3938
|
hasChars: hasChars,
|
|
3894
3939
|
hasClass: hasClass,
|
package/lib/form.js
CHANGED
|
@@ -2138,6 +2138,10 @@ var getWeekday = function getWeekday(date) {
|
|
|
2138
2138
|
var getWinTop = function getWinTop(wind) {
|
|
2139
2139
|
wind = wind ? wind : window.__WUJIE_RAW_WINDOW__ ? window.__WUJIE_RAW_WINDOW__ : window;
|
|
2140
2140
|
try {
|
|
2141
|
+
// 检查是否已经是顶层窗口,避免无限递归
|
|
2142
|
+
if (wind === wind.parent) {
|
|
2143
|
+
return wind;
|
|
2144
|
+
}
|
|
2141
2145
|
wind.parent.document;
|
|
2142
2146
|
return getWinTop(wind.parent);
|
|
2143
2147
|
} catch (error) {
|
|
@@ -2145,6 +2149,46 @@ var getWinTop = function getWinTop(wind) {
|
|
|
2145
2149
|
}
|
|
2146
2150
|
};
|
|
2147
2151
|
|
|
2152
|
+
/**
|
|
2153
|
+
* getWinTopProperty
|
|
2154
|
+
* @desc 安全获取顶层窗口的属性,避免跨域访问错误
|
|
2155
|
+
* @param {string} propertyName - 要获取的属性名
|
|
2156
|
+
* @param {any} defaultValue - 默认值,当属性获取失败时返回
|
|
2157
|
+
* @return {any} 属性值或默认值
|
|
2158
|
+
**/
|
|
2159
|
+
var getWinTopProperty = function getWinTopProperty(propertyName, defaultValue) {
|
|
2160
|
+
// 1. 先尝试获取 window.top 的属性
|
|
2161
|
+
try {
|
|
2162
|
+
if (window.top && window.top[propertyName] !== undefined) {
|
|
2163
|
+
return window.top[propertyName];
|
|
2164
|
+
}
|
|
2165
|
+
} catch (topError) {}
|
|
2166
|
+
// window.top 跨域,继续尝试
|
|
2167
|
+
|
|
2168
|
+
|
|
2169
|
+
// 2. 尝试获取同源的最上层窗口的属性
|
|
2170
|
+
try {
|
|
2171
|
+
var sameOriginTop = getWinTop();
|
|
2172
|
+
if (sameOriginTop && sameOriginTop[propertyName] !== undefined) {
|
|
2173
|
+
return sameOriginTop[propertyName];
|
|
2174
|
+
}
|
|
2175
|
+
} catch (sameOriginError) {}
|
|
2176
|
+
// 同源最上层窗口获取失败,继续尝试
|
|
2177
|
+
|
|
2178
|
+
|
|
2179
|
+
// 3. 尝试获取当前窗口的属性
|
|
2180
|
+
try {
|
|
2181
|
+
if (window[propertyName] !== undefined) {
|
|
2182
|
+
return window[propertyName];
|
|
2183
|
+
}
|
|
2184
|
+
} catch (currentWinError) {}
|
|
2185
|
+
// 当前窗口获取失败,返回默认值
|
|
2186
|
+
|
|
2187
|
+
|
|
2188
|
+
// 4. 所有尝试都失败,返回默认值
|
|
2189
|
+
return defaultValue;
|
|
2190
|
+
};
|
|
2191
|
+
|
|
2148
2192
|
/**
|
|
2149
2193
|
* getZoom
|
|
2150
2194
|
* @desc 获取缩放比
|
|
@@ -3890,6 +3934,7 @@ var winTopOpen = function winTopOpen(config) {
|
|
|
3890
3934
|
getValues: getValues,
|
|
3891
3935
|
getWeekday: getWeekday,
|
|
3892
3936
|
getWinTop: getWinTop,
|
|
3937
|
+
getWinTopProperty: getWinTopProperty,
|
|
3893
3938
|
handlerUrl: handlerUrl,
|
|
3894
3939
|
hasChars: hasChars,
|
|
3895
3940
|
hasClass: hasClass,
|
package/lib/handle-user.js
CHANGED
|
@@ -2138,6 +2138,10 @@ var getWeekday = function getWeekday(date) {
|
|
|
2138
2138
|
var getWinTop = function getWinTop(wind) {
|
|
2139
2139
|
wind = wind ? wind : window.__WUJIE_RAW_WINDOW__ ? window.__WUJIE_RAW_WINDOW__ : window;
|
|
2140
2140
|
try {
|
|
2141
|
+
// 检查是否已经是顶层窗口,避免无限递归
|
|
2142
|
+
if (wind === wind.parent) {
|
|
2143
|
+
return wind;
|
|
2144
|
+
}
|
|
2141
2145
|
wind.parent.document;
|
|
2142
2146
|
return getWinTop(wind.parent);
|
|
2143
2147
|
} catch (error) {
|
|
@@ -2145,6 +2149,46 @@ var getWinTop = function getWinTop(wind) {
|
|
|
2145
2149
|
}
|
|
2146
2150
|
};
|
|
2147
2151
|
|
|
2152
|
+
/**
|
|
2153
|
+
* getWinTopProperty
|
|
2154
|
+
* @desc 安全获取顶层窗口的属性,避免跨域访问错误
|
|
2155
|
+
* @param {string} propertyName - 要获取的属性名
|
|
2156
|
+
* @param {any} defaultValue - 默认值,当属性获取失败时返回
|
|
2157
|
+
* @return {any} 属性值或默认值
|
|
2158
|
+
**/
|
|
2159
|
+
var getWinTopProperty = function getWinTopProperty(propertyName, defaultValue) {
|
|
2160
|
+
// 1. 先尝试获取 window.top 的属性
|
|
2161
|
+
try {
|
|
2162
|
+
if (window.top && window.top[propertyName] !== undefined) {
|
|
2163
|
+
return window.top[propertyName];
|
|
2164
|
+
}
|
|
2165
|
+
} catch (topError) {}
|
|
2166
|
+
// window.top 跨域,继续尝试
|
|
2167
|
+
|
|
2168
|
+
|
|
2169
|
+
// 2. 尝试获取同源的最上层窗口的属性
|
|
2170
|
+
try {
|
|
2171
|
+
var sameOriginTop = getWinTop();
|
|
2172
|
+
if (sameOriginTop && sameOriginTop[propertyName] !== undefined) {
|
|
2173
|
+
return sameOriginTop[propertyName];
|
|
2174
|
+
}
|
|
2175
|
+
} catch (sameOriginError) {}
|
|
2176
|
+
// 同源最上层窗口获取失败,继续尝试
|
|
2177
|
+
|
|
2178
|
+
|
|
2179
|
+
// 3. 尝试获取当前窗口的属性
|
|
2180
|
+
try {
|
|
2181
|
+
if (window[propertyName] !== undefined) {
|
|
2182
|
+
return window[propertyName];
|
|
2183
|
+
}
|
|
2184
|
+
} catch (currentWinError) {}
|
|
2185
|
+
// 当前窗口获取失败,返回默认值
|
|
2186
|
+
|
|
2187
|
+
|
|
2188
|
+
// 4. 所有尝试都失败,返回默认值
|
|
2189
|
+
return defaultValue;
|
|
2190
|
+
};
|
|
2191
|
+
|
|
2148
2192
|
/**
|
|
2149
2193
|
* getZoom
|
|
2150
2194
|
* @desc 获取缩放比
|
|
@@ -3890,6 +3934,7 @@ var winTopOpen = function winTopOpen(config) {
|
|
|
3890
3934
|
getValues: getValues,
|
|
3891
3935
|
getWeekday: getWeekday,
|
|
3892
3936
|
getWinTop: getWinTop,
|
|
3937
|
+
getWinTopProperty: getWinTopProperty,
|
|
3893
3938
|
handlerUrl: handlerUrl,
|
|
3894
3939
|
hasChars: hasChars,
|
|
3895
3940
|
hasClass: hasClass,
|
package/lib/handler.js
CHANGED
|
@@ -2138,6 +2138,10 @@ var getWeekday = function getWeekday(date) {
|
|
|
2138
2138
|
var getWinTop = function getWinTop(wind) {
|
|
2139
2139
|
wind = wind ? wind : window.__WUJIE_RAW_WINDOW__ ? window.__WUJIE_RAW_WINDOW__ : window;
|
|
2140
2140
|
try {
|
|
2141
|
+
// 检查是否已经是顶层窗口,避免无限递归
|
|
2142
|
+
if (wind === wind.parent) {
|
|
2143
|
+
return wind;
|
|
2144
|
+
}
|
|
2141
2145
|
wind.parent.document;
|
|
2142
2146
|
return getWinTop(wind.parent);
|
|
2143
2147
|
} catch (error) {
|
|
@@ -2145,6 +2149,46 @@ var getWinTop = function getWinTop(wind) {
|
|
|
2145
2149
|
}
|
|
2146
2150
|
};
|
|
2147
2151
|
|
|
2152
|
+
/**
|
|
2153
|
+
* getWinTopProperty
|
|
2154
|
+
* @desc 安全获取顶层窗口的属性,避免跨域访问错误
|
|
2155
|
+
* @param {string} propertyName - 要获取的属性名
|
|
2156
|
+
* @param {any} defaultValue - 默认值,当属性获取失败时返回
|
|
2157
|
+
* @return {any} 属性值或默认值
|
|
2158
|
+
**/
|
|
2159
|
+
var getWinTopProperty = function getWinTopProperty(propertyName, defaultValue) {
|
|
2160
|
+
// 1. 先尝试获取 window.top 的属性
|
|
2161
|
+
try {
|
|
2162
|
+
if (window.top && window.top[propertyName] !== undefined) {
|
|
2163
|
+
return window.top[propertyName];
|
|
2164
|
+
}
|
|
2165
|
+
} catch (topError) {}
|
|
2166
|
+
// window.top 跨域,继续尝试
|
|
2167
|
+
|
|
2168
|
+
|
|
2169
|
+
// 2. 尝试获取同源的最上层窗口的属性
|
|
2170
|
+
try {
|
|
2171
|
+
var sameOriginTop = getWinTop();
|
|
2172
|
+
if (sameOriginTop && sameOriginTop[propertyName] !== undefined) {
|
|
2173
|
+
return sameOriginTop[propertyName];
|
|
2174
|
+
}
|
|
2175
|
+
} catch (sameOriginError) {}
|
|
2176
|
+
// 同源最上层窗口获取失败,继续尝试
|
|
2177
|
+
|
|
2178
|
+
|
|
2179
|
+
// 3. 尝试获取当前窗口的属性
|
|
2180
|
+
try {
|
|
2181
|
+
if (window[propertyName] !== undefined) {
|
|
2182
|
+
return window[propertyName];
|
|
2183
|
+
}
|
|
2184
|
+
} catch (currentWinError) {}
|
|
2185
|
+
// 当前窗口获取失败,返回默认值
|
|
2186
|
+
|
|
2187
|
+
|
|
2188
|
+
// 4. 所有尝试都失败,返回默认值
|
|
2189
|
+
return defaultValue;
|
|
2190
|
+
};
|
|
2191
|
+
|
|
2148
2192
|
/**
|
|
2149
2193
|
* getZoom
|
|
2150
2194
|
* @desc 获取缩放比
|
|
@@ -3890,6 +3934,7 @@ var winTopOpen = function winTopOpen(config) {
|
|
|
3890
3934
|
getValues: getValues,
|
|
3891
3935
|
getWeekday: getWeekday,
|
|
3892
3936
|
getWinTop: getWinTop,
|
|
3937
|
+
getWinTopProperty: getWinTopProperty,
|
|
3893
3938
|
handlerUrl: handlerUrl,
|
|
3894
3939
|
hasChars: hasChars,
|
|
3895
3940
|
hasClass: hasClass,
|
package/lib/icon.js
CHANGED
|
@@ -2138,6 +2138,10 @@ var getWeekday = function getWeekday(date) {
|
|
|
2138
2138
|
var getWinTop = function getWinTop(wind) {
|
|
2139
2139
|
wind = wind ? wind : window.__WUJIE_RAW_WINDOW__ ? window.__WUJIE_RAW_WINDOW__ : window;
|
|
2140
2140
|
try {
|
|
2141
|
+
// 检查是否已经是顶层窗口,避免无限递归
|
|
2142
|
+
if (wind === wind.parent) {
|
|
2143
|
+
return wind;
|
|
2144
|
+
}
|
|
2141
2145
|
wind.parent.document;
|
|
2142
2146
|
return getWinTop(wind.parent);
|
|
2143
2147
|
} catch (error) {
|
|
@@ -2145,6 +2149,46 @@ var getWinTop = function getWinTop(wind) {
|
|
|
2145
2149
|
}
|
|
2146
2150
|
};
|
|
2147
2151
|
|
|
2152
|
+
/**
|
|
2153
|
+
* getWinTopProperty
|
|
2154
|
+
* @desc 安全获取顶层窗口的属性,避免跨域访问错误
|
|
2155
|
+
* @param {string} propertyName - 要获取的属性名
|
|
2156
|
+
* @param {any} defaultValue - 默认值,当属性获取失败时返回
|
|
2157
|
+
* @return {any} 属性值或默认值
|
|
2158
|
+
**/
|
|
2159
|
+
var getWinTopProperty = function getWinTopProperty(propertyName, defaultValue) {
|
|
2160
|
+
// 1. 先尝试获取 window.top 的属性
|
|
2161
|
+
try {
|
|
2162
|
+
if (window.top && window.top[propertyName] !== undefined) {
|
|
2163
|
+
return window.top[propertyName];
|
|
2164
|
+
}
|
|
2165
|
+
} catch (topError) {}
|
|
2166
|
+
// window.top 跨域,继续尝试
|
|
2167
|
+
|
|
2168
|
+
|
|
2169
|
+
// 2. 尝试获取同源的最上层窗口的属性
|
|
2170
|
+
try {
|
|
2171
|
+
var sameOriginTop = getWinTop();
|
|
2172
|
+
if (sameOriginTop && sameOriginTop[propertyName] !== undefined) {
|
|
2173
|
+
return sameOriginTop[propertyName];
|
|
2174
|
+
}
|
|
2175
|
+
} catch (sameOriginError) {}
|
|
2176
|
+
// 同源最上层窗口获取失败,继续尝试
|
|
2177
|
+
|
|
2178
|
+
|
|
2179
|
+
// 3. 尝试获取当前窗口的属性
|
|
2180
|
+
try {
|
|
2181
|
+
if (window[propertyName] !== undefined) {
|
|
2182
|
+
return window[propertyName];
|
|
2183
|
+
}
|
|
2184
|
+
} catch (currentWinError) {}
|
|
2185
|
+
// 当前窗口获取失败,返回默认值
|
|
2186
|
+
|
|
2187
|
+
|
|
2188
|
+
// 4. 所有尝试都失败,返回默认值
|
|
2189
|
+
return defaultValue;
|
|
2190
|
+
};
|
|
2191
|
+
|
|
2148
2192
|
/**
|
|
2149
2193
|
* getZoom
|
|
2150
2194
|
* @desc 获取缩放比
|
|
@@ -3890,6 +3934,7 @@ var winTopOpen = function winTopOpen(config) {
|
|
|
3890
3934
|
getValues: getValues,
|
|
3891
3935
|
getWeekday: getWeekday,
|
|
3892
3936
|
getWinTop: getWinTop,
|
|
3937
|
+
getWinTopProperty: getWinTopProperty,
|
|
3893
3938
|
handlerUrl: handlerUrl,
|
|
3894
3939
|
hasChars: hasChars,
|
|
3895
3940
|
hasClass: hasClass,
|