{"id":21181970,"url":"https://github.com/daief/storage-message","last_synced_at":"2026-05-09T09:02:31.418Z","repository":{"id":57371245,"uuid":"149860100","full_name":"daief/storage-message","owner":"daief","description":"基于localStorage封装后用于跨页面消息传递的模块，适用于非跨域情况下，同一页面、跨 tab 页面、移动端不同 webview 页面之间的消息传递","archived":false,"fork":false,"pushed_at":"2018-09-25T08:41:57.000Z","size":110,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-23T16:48:39.242Z","etag":null,"topics":["npm-package","typescript"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/daief.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-09-22T08:44:09.000Z","updated_at":"2024-08-06T08:55:38.000Z","dependencies_parsed_at":"2022-09-19T14:02:14.477Z","dependency_job_id":null,"html_url":"https://github.com/daief/storage-message","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/daief/storage-message","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daief%2Fstorage-message","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daief%2Fstorage-message/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daief%2Fstorage-message/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daief%2Fstorage-message/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/daief","download_url":"https://codeload.github.com/daief/storage-message/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daief%2Fstorage-message/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264384390,"owners_count":23599612,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["npm-package","typescript"],"created_at":"2024-11-20T17:53:31.447Z","updated_at":"2026-05-09T09:02:26.371Z","avatar_url":"https://github.com/daief.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# storage-message\n基于`window.localStorage`简单封装后进行消息传递的模块，适用于同一页面、跨 tab 页面、移动端不同 webview 页面之间的消息传递，前提是**不可跨域、支持`window.localStorage`**。\n\n## warning\n==在 webview 当中使用时存在问题==\n- Android 在开启支持 localStorage 的情况下，表现还是可以的\n- iOS 中，首先多个 webview 的 localStorage 数据不是同步的，而且并不触发 storage 事件\n\n## install\n```bash\nnpm i storage-message\n\nyarn add storage-message\n```\n\n```html\n\u003cscript src=\"dist/bundle.js\"\u003e\u003c/script\u003e\n```\n\n## usage\n\nes module:\n```js\n// page 1\nimport {storageMessage} from 'storage-message'\nconst KEY = 'test'\nconst listener = e =\u003e {\n  const {key, oldValue, newValue} = e\n\n  console.log('data', newValue)\n}\nstorageMessage.addEventListener(KEY, listener)\n\n// remove event\n// storageMessage.removeEventListener(KEY, listener)\n```\n\n```js\n// page 2\nimport {storageMessage} from 'storage-message'\n// send message\nstorageMessage.trigger('test', 'data from page 2')\n```\n\nglobal:\n```js\nconst {storageMessage} = window.StorageMessage\n```\n\n## example\n```bash\n$ git clone git@github.com:daief/storage-message.git\n\n$ cd storage-message \u0026\u0026 yarn \u0026\u0026 yarn start\n```\n\nopen http://localhost:10001/example/page1.html  \u0026 http://localhost:10001/example/page2.html\n\n![](./example/preview.gif)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdaief%2Fstorage-message","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdaief%2Fstorage-message","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdaief%2Fstorage-message/lists"}