Browser

浏览器

下列方法仅适用于浏览器端。

Description:
  • 浏览器

    下列方法仅适用于浏览器端。

Source:

Methods

(static) ajax(url, optionsopt) → {Promise.<object>}

Description:
  • 请求

    注意:该方法仅适用于浏览器端。

Source:
Since:
  • 4.16.0
See:
Example
ajax('/somefile').then(res=>{
  // do something
});

ajax('/api', { method: 'post' }).then(res=>{
  // do something
});
Parameters:
Name Type Attributes Description
url string

地址

options AjaxOptions <optional>

配置项

Properties
Name Type Attributes Default Description
method string <optional>
"get"

创建请求时使用的方法。默认 'get'

async boolean <optional>
true

是否异步执行操作。默认 true

user string | null <optional>
null

用户名,用于认证用途。默认 null

password string | null <optional>
null

密码,用于认证用途。默认 null

headers Object <optional>

自定义请求头。

responseType string <optional>

响应类型。

timeout number <optional>

请求超时的毫秒数。

withCredentials boolean <optional>
false

跨域请求时是否需要使用凭证。默认 false

data * <optional>
null

请求体被发送的数据。默认 null

onReadyStateChange function <optional>

当 readyState 属性发生变化时触发。

onLoadStart function <optional>

接收到响应数据时触发。

onProgress function <optional>

请求接收到更多数据时,周期性地触发。

onAbort function <optional>

当 request 被停止时触发,例如当程序调用 XMLHttpRequest.abort() 时。

onTimeout function <optional>

在预设时间内没有接收到响应时触发。

onError function <optional>

当 request 遭遇错误时触发。

onLoad function <optional>

请求成功完成时触发。

onLoadEnd function <optional>

请求结束时触发,无论请求成功 (load) 还是失败 (abort 或 error)。

Returns:

XHR 事件对象。

Type
Promise.<object>

(static) checkFileType(file, acceptopt) → {boolean}

Description:
  • 检查文件是否符合 accept 类型说明符。

    通过 file.type file.name file.urlaccept 进行匹配。

Source:
Since:
  • 5.1.0
See:
Example
const pdf = new File([], '1.pdf', { type: 'application/pdf' });
const jpeg = new File([], 'xx.jpeg', { type: 'image/jpeg' });

// 文件类型
checkFileType(pdf, 'application/pdf'); // true
checkFileType(jpeg, 'image/jpeg'); // true

// 通配符
checkFileType(jpeg, 'image/*'); // true
checkFileType(pdf, 'image/*'); // false
checkFileType(pdf, 'application/*'); // true
checkFileType(pdf, '*'); // true
checkFileType(jpeg, '*'); // true

// 文件名扩展名
checkFileType(jpeg, '.png,.jpeg,.jpg'); // true
checkFileType(pdf, '.pdf'); // true
Parameters:
Name Type Attributes Description
file File

文件对象。支持 antd UploadFile 对象。

accept string <optional>

文件类型说明符。

Returns:

如果 file 符合 accept 返回 true, 否则返回 false

Type
boolean

(static) compressImage(img, optionsopt) → {Promise.<(Blob|string)>}

Description:
  • 压缩图片。

    注意:该方法仅适用于浏览器端。

    如果是半透明图片并且导出 image/png 格式,建议将背景变成透明 background=transparent,避免出现白边。注意正常图片压缩导出 image/png 格式后文件可能会比原图大。

Source:
Since:
  • 4.20.0
See:
Example
// 默认返回压缩后的 blob 对象
compressImage(file).then(blob=>{
   // do something
   // 转为文件对象 new File([blob], file.name, { type: file.type })
});

// 设置返回格式 data url
compressImage(file, { format: 'dataURL' }).then(url=>{
   // do something
});

// 自定义配置
compressImage('https://dummyimage.com/200x300', {
 width: 100,
 height: 100,
 quality: 0.5,
 beforeCompress({ image, blob }){},
 beforeDraw({ image, blob, canvas, context }){}
 afterDraw({ image, blob, canvas, context }){}
}).then(blob=>{
  // do something
});

// 支持不同形式的图片文件
compressImage('data:image/png;base64,PGEgaWQ9ImEiPjxiIGlkPSJiIj5oZXkhPC9iPjwvYT4=').then(blob=>{
  // do something
});
Parameters:
Name Type Attributes Description
img string | Blob

图片地址或 blob 对象

options Object <optional>

配置项

Properties
Name Type Attributes Default Description
width number <optional>

自定义图片宽度,默认图片自身宽度

height number <optional>

自定义图片高度,默认图片自身高度

rotate number <optional>

旋转

offset Array | function <optional>
[0, 0]

x,y轴偏移值,默认[0, 0]

background string <optional>
#fff

背景颜色,默认#fff

canvasWidth number | function <optional>

画布宽度,默认图片宽度

canvasHeight number | function <optional>

画布高度,默认图片高度

format 'blob' | 'dataURL' <optional>
'blob'

导出格式,默认blob

type string <optional>
'image/jpeg'

图片类型,默认image/jpeg

quality number <optional>
0.8

图片质量,默认0.8

beforeCompress function <optional>

图片加载完成,画布创建之前调用

beforeDraw function <optional>

图片载入画布之前调用

afterDraw function <optional>

图片载入画布之后调用

ajaxOptions AjaxOptions <optional>

ajax 请求配置项,当传入图片地址时才会触发ajax请求。

Returns:

blob 对象 或 data url 图片

Type
Promise.<(Blob|string)>

(static) dataURLToBlob(data) → {Blob}

Description:
  • 将 DataURL 转为 Blob 对象

Source:
Since:
  • 4.1.0
See:
Example
const data = 'data:text/html;base64,PGEgaWQ9ImEiPjxiIGlkPSJiIj5oZXkhPC9iPjwvYT4=';
dataURLToBlob(dataurl); // Blob {size: 32, type: 'text/html'}
Parameters:
Name Type Description
data string

data: 协议的URL

Returns:

Blob 对象

Type
Blob

(async, static) download(data, optionsopt) → {Promise.<void>}

Description:
  • 下载

    注意:该方法仅适用于浏览器端,兼容 IE10+ 和现代浏览器。

    注意:微信浏览器不支持H5下载文件。

    响应头中有 "Content-Disposition" 字段,客户端获取不到? 请参考查阅 Access-Control-Expose-Headers

Source:
Since:
  • 4.16.0
See:
Example
// 文本
download('hello world', 'text.txt');

// 远程文件1
// 不带协议的绝对地址,需要通过 dataType 指定为 url 类型
download('/xxx.jpg', { dataType: 'url', fileName: 'test.jpg' });

// 远程文件2
download('https://example.com/xxx.jpg');

// base64
download('data:image/png;base64,PGEgaWQ9ImEiPjxiIGlkPSJiIj5oZXkhPC9iPjwvYT4=', 'test.png');

// blob文件
download(new Blob(['hello world']), 'text.txt');

// 本地文件
download(File, 'filename.ext');
Parameters:
Name Type Attributes Description
data string | Blob | ArrayBuffer | TypedArray

字符串、blob数据或url地址

options string | Object <optional>

文件名称 或 配置项。

Properties
Name Type Attributes Description
fileName string <optional>

文件名称。

type string <optional>

MIME 类型。

dataType 'url' | 'text' <optional>

手动设置数据类型,主要是为了区分 urltext,默认会根据传入的数据判断类型。
如果你要下载的文本是 url ,请设置 'text' ;如果你要下载的 url 是绝对/相对路径,请设置 'url' 。

transformRequest function <optional>

请求前触发,XHR 对象或配置调整。

transformResponse function <optional>

请求成功后触发,在传递给 then/catch 前,允许修改响应数据。

Returns:
Type
Promise.<void>

(static) fileReader(blob, typeopt) → {Promise.<(string|ArrayBuffer)>}

Description:
  • 读取 Blob 或 File 对象,转为 Base64/String/ArrayBuffer

    注意:该方法仅适用于浏览器端。

Source:
Since:
  • 4.16.0
See:
Example
const aFileParts = ['<a id="a"><b id="b">hey!</b></a>']; // 一个包含DOMString的数组
const htmlBlob = new Blob(aFileParts, { type: 'text/html' }); // 得到 blob

fileReader(htmlBlob).then(data=>{
  console.log(data); // data:text/html;base64,PGEgaWQ9ImEiPjxiIGlkPSJiIj5oZXkhPC9iPjwvYT4=
});

const textBlob = new Blob(aFileParts, { type: 'text/plain' });

fileReader(textBlob, 'text').then(data=>{
  console.log(data); // <a id="a"><b id="b">hey!</b></a>
});
Parameters:
Name Type Attributes Default Description
blob Blob

Blob 或 File 对象

type 'arrayBuffer' | 'binaryString' | 'dataURL' | 'text' <optional>
'dataURL'

读取类型,默认dataURL。可选 arrayBuffer binaryString dataURL text

Returns:

文件内容

Type
Promise.<(string|ArrayBuffer)>

(static) getFileBlob(file, ajaxOptionsopt) → {Promise.<Blob>}

Description:
  • 获取文件 Blob 。

Source:
Since:
  • 4.21.0
Example
getFileBlob(file).then((blob)=>{
   // do something
});

getFileBlob('https://dummyimage.com/200x300').then((blob)=>{
  // do something
});
Parameters:
Name Type Attributes Description
file string | Blob

文件地址或对象。

ajaxOptions AjaxOptions <optional>

ajax 请求配置项,当传入的图片为字符串时才会触发请求。

Returns:

文件 Blob 。

Type
Promise.<Blob>

(static) getFileType(file) → {"image"|"audio"|"video"|"pdf"|"word"|"excel"|undefined}

获取文件类型。

Description:
  • 内置文件类型和文件类型说明符

    类型 说明符
    image image/*,.jpeg,.jpg,.gif,.bmp,.png,.webp,.svg,.apng,.avif,.ico,.tif,.tiff
    audio audio/*,.mp3,.wav,.aac,.flac
    video video/*,.mp4,.webm,.ogg,.mov
    pdf application/pdf,.pdf
    word application/vnd.openxmlformats-officedocument.wordprocessingml.document,.doc,.docx
    excel application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-excel,.xls,.xlsx
Source:
Since:
  • 5.1.0
Example
const pdf = new File([], '1.pdf', { type: 'application/pdf' });
const jpeg = new File([], 'xx.jpeg', { type: 'image/jpeg' });

getFileType(pdf); // 'pdf'
getFileType(jpeg); // 'image'
Parameters:
Name Type Description
file File

文件对象。支持 antd UploadFile 对象。

Requires:
  • module:Other.checkFileType
Returns:

如果是 image audio video pdf word excel 这些类型的文件,返回对应的类型值,否则返回 undefined

Type
"image" | "audio" | "video" | "pdf" | "word" | "excel" | undefined

(static) getImageInfo(img, ajaxOptionsopt) → {Promise.<ImageInfo>}

Description:
  • 获取图片信息。

    注意:该方法仅适用于浏览器端。

Source:
Since:
  • 4.20.0
Example
getImageInfo(file).then(imageInfo=>{
  console.log(imageInfo);
  // {
  //   width: 100,
  //   height: 100,
  //   contrast: '1:1',
  //   measure: '100 × 100 px',
  //   size: '11 B',
  //   bytes: 11,
  //   image: HTMLImageElement {},
  //   blob: Blob {}
  // }
});

getImageInfo('https://dummyimage.com/200x300').then(imageInfo=>{
  // do something
});

getImageInfo('data:image/png;base64,PGEgaWQ9ImEiPjxiIGlkPSJiIj5oZXkhPC9iPjwvYT4=').then(imageInfo=>{
  // do something
});
Parameters:
Name Type Attributes Description
img string | Blob

图片地址或 blob 对象。

ajaxOptions AjaxOptions <optional>

ajax 请求配置项,当传入的图片为字符串时才会触发请求。

Returns:

图片信息。

Type
Promise.<ImageInfo>

(static) getMimeType(fileName)

获取常用的 MIME 类型。通过文件名后缀查找对应的 MIME 类型。

Description:
  • 内置常用的 MIME 类型和文件名后缀映射

    MIME 类型 文件名后缀
    text/plain txt
    text/css css
    text/html htm html
    text/javascript js mjs
    text/csv csv
    text/markdown md markdown
    image/gif gif
    image/jpeg jpg jpeg jfif pjpeg pjp
    image/png png
    image/svg+xml svg
    image/webp webp
    image/apng apng
    image/avif avif
    image/bmp bmp
    image/x-icon ico cur
    image/tiff tif tiff
    application/xml xml
    application/zip zip
    application/pdf pdf
    application/json json
    application/yaml yaml yml
    application/vnd.openxmlformats-officedocument.wordprocessingml.document doc docx
    application/vnd.openxmlformats-officedocument.spreadsheetml.sheet xls xlsx
    audio/mp3 mp3
    audio/wav wav
    audio/aac aac
    audio/flac flac
    video/mp4 mp4
    video/ogg ogg
    video/webm webm
    video/quicktime mov
Source:
Since:
  • 5.2.0
See:
Example
getMimeType('xxx.png'); // 'image/png'
getMimeType('xxx.jpg'); // 'image/jpeg'
getMimeType('xxx.mp3'); // 'audio/mp3'
getMimeType('xxx.mp4'); // 'video/mp4'
getMimeType('xxx.pdf'); // 'application/pdf'
getMimeType('xxx.zip'); // 'application/zip'
getMimeType('xxx.doc'); // 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'

// 不常用或未知类型
getMimeTye('xxx.ci'); // undefined

// 非法文件名
getMimeType('.zip'); // undefined
Parameters:
Name Type Description
fileName string

文件名。

Returns:

如果找到,返回 MIME 类型字符串,否则返回 undefined

(static) injectStyle(css, optionsopt) → {HTMLStyleElement}

Description:
  • 注入样式。

Source:
Since:
  • 5.3.0
Example
const css1 = 'body { background-color: red; }';
injectStyle(css1);

// 自定义配置
const css2 = 'p { margin: 10px; } a { color: blue; }';
injectStyle(css2, {
  container: document.body,
  insertAt: 'bottom',
  onBefore(style){
    style.nonce = '...';
  }
});
Parameters:
Name Type Attributes Description
css string

样式内容。

options Object <optional>

配置项。

Properties
Name Type Attributes Default Description
container HTMLElement <optional>
document.head

要注入样式的容器。默认 document.head。如果 document.head 不存在,默认 document.body

insertAt 'top' | 'bottom' <optional>
'top'

注入容器内容前面还是后面。默认 top

onBefore function <optional>

注入样式前的回调方法。

Returns:

style 元素。

Type
HTMLStyleElement

(static) loadImage(img) → {Promise.<HTMLImageElement>}

Description:
  • 加载图片。

    注意:该方法仅适用于浏览器端。

Source:
Since:
  • 4.20.0
Example
loadImage(file).then(image=>{
   // do something
});

loadImage('https://dummyimage.com/200x300').then(image=>{
  // do something
});

loadImage('data:image/png;base64,PGEgaWQ9ImEiPjxiIGlkPSJiIj5oZXkhPC9iPjwvYT4=').then(image=>{
  // do something
});
Parameters:
Name Type Description
img string | Blob

图片地址或 blob 对象

Returns:

HTML图片元素

Type
Promise.<HTMLImageElement>

(static) loadImageWithBlob(img, ajaxOptionsopt) → {Promise.<ImageWithBlob>}

Description:
  • 加载图片,返回图片元素和 blob 对象。

    如果传入图片地址,将通过 ajax 请求转为 blob 格式。

    注意:该方法仅适用于浏览器端。

Source:
Since:
  • 4.20.0
Example
loadImage(file).then(({image, blob})=>{
  console.log(image, blob);
  // HTMLImageElement {} Blob {}
});

loadImage('https://dummyimage.com/200x300').then(({image, blob})=>{
  // do something
});

loadImage('data:image/png;base64,PGEgaWQ9ImEiPjxiIGlkPSJiIj5oZXkhPC9iPjwvYT4=').then(({image, blob})=>{
  // do something
});
Parameters:
Name Type Attributes Description
img string | Blob

图片地址或 blob 对象

ajaxOptions AjaxOptions <optional>

ajax 请求配置项,当传入的图片为字符串时才会触发请求。

Returns:

HTML图片元素和 blob 对象

Type
Promise.<ImageWithBlob>

(static) loadScript(src, optionsopt) → {Promise.<HTMLScriptElement>}

Description:
  • 加载 js 文件。

    注意:该方法仅适用于浏览器端。

Source:
Since:
  • 4.19.0
Example
loadScript('some.js').then(script=>{
  // do something
})

loadScript('some.js', { id: 'xxx', async: false, attrs: { foo: 'bar' } }).then(script=>{
  // do something
})
Parameters:
Name Type Attributes Description
src string

js 地址。

options Object <optional>

script 标签属性。比如 defer onload onerror id 等,下面列举部分带有默认值或额外扩展的配置。

Properties
Name Type Attributes Default Description
destroyOnError boolean <optional>
true

如果加载失败或错误,自动删除 dom 中的 script 标签。默认true

attrs Object <optional>

自定义 script 属性,通过 script.setAttribute 设置。

async boolean <optional>
true

异步加载。默认true

type string <optional>
'text/javascript'

类型。默认text/javascript

Returns:

异步返回 script 元素。

Type
Promise.<HTMLScriptElement>