Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | 1x 3x 3x 3x 3x 3x 1x | /**
* @description 新开标签页,使用`noopener noreferrer`防止安全漏洞,例如xss
* @function winOpen
* @param {object} [obj={ path, query = {}, target = '_blank' }] - 跳转所需信息
* @param {string} obj.path - url路径
* @param {object} obj.query - url参数对象
* @param {string} [obj.target='_blank'] - 新开窗口
* @author liukun <919590347@qq.com>
* @example
* import { winOpen } from '@wont/utils'
* winOpen({path: 'https://wont-org.github.io', query: {a:'1',b:'2'}}) // 新开窗口路径为 'https://wont-org.github.io?a=1&b=2'
*/
export interface IWinOpenParams {
path: string
target?: string
query?: string | string[][] | Record<string, string> | URLSearchParams
}
export const winOpen = (obj: IWinOpenParams): void => {
const { path, query = {}, target = '_blank' } = obj;
const urlParamsStr = new URLSearchParams(query).toString();
const paramsStr = urlParamsStr ? `?${urlParamsStr}` : '';
const newWindow = window.open(
`${path}${paramsStr}`,
target,
'noopener noreferrer',
);
if (newWindow) {
newWindow.opener = null;
}
};
|