bifrost-cors
v1.0.4
Published
A cross-domain utility lib, for sharing localStorage, cookie and many more over the cross domain
Downloads
532
Maintainers
Readme
Bifrost-CORS
A cross-domain communication solution to share data and many more functionalities with simple as just calling a method.
Get Started
NPM Install
npm install bifrost-cors
CDN Link (6.39KB)
https://cdn.jsdelivr.net/gh/spurushottam13/bifrost-cors/index.min.js
GZIP version of File (1.7KB)
https://cdn.jsdelivr.net/gh/spurushottam13/bifrost-cors/index.min.gz
Functionalities can be performed on CROS Domain
Get, Set Cookie
Get, Set & Delete Local Stroage
Bi-directional message thread
Run JS expression from one domain to other
DOM Manipulation from one domain to other domain ( Iframe )
All above methods are wrapped in a promise.
Initialize Bifrost-CORS You have to Initialize Bifrost-CORS in both domain
var bifrostCors = new bifrostCors(address, iframeBoolean,iframeId)
| Parameter | Required | Value | | :------------- |:---------------------|:-----| | address | YES | Exact Address of the other domain| | iframeBoolean| No | true :- If you already rendering the other domain in iframe false If you are not rendering the other domain in iframe Default false | | iframeId| No | if iframeBoolean is set to true then you need to pass the ID for your Iframe in which you loading the other domain |
Implementation of methods and how to handle promise
var bifrostCors = new bifrostCors("http://example.com/",false)
//Calling Methods without promise
var result = bifrostCors.getLocalStorage(key)
//Hanlde Promise
//1. Using .then()
bifrostCors.getLocalStorage(key).then((data) => {
console.log(data)
})
//2. Using async function
async function grabLocalStorage(){
let result = await bifrostCors.getLocalStorage(key)
}
Functionalities
Cookies
- Get Cookies
// return type Object, return all cookies bifrostCors.getCookie() // return type string bifrostCors.getCookie("key")
- Set Cookies
bifrostCors.setCookie(name,value,days)
- Parameter
- name String, name for cookie
- value String, value for cookie
- days int, expiration days for cookie
- return type Boolean
LocalStorage
- Get local Storage
// return type stirng bifrostCors.getgetLocalStorage("key") // return type array bifrostCors.getLocalStorage(["key1","key2"])
- Set local Storage
// return type Boolean bifrostCors.setLocalStorage({key: "user", value: "user-1"})
- Delete local Storage
// return type Boolean bifrostCors.deleteLocalStorage("key") // return type Boolean bifrostCors.deleteLocalStorage(["key1","key2"])
Bi-directional message thread
- Request Message Thread
// return type Boolean, parameter type funtion bifrostCors.requestMessageThread(Listner)
Listner is your custom function which will be invoked every time new message recivied, and it should expect a new message as a parameter
Here's exapmle
function myCustomListner(newMessage){ cosnole.log("Hurray I got new message ",newMessage) } bifrostCors.requestMessageThread(myCustomListner)
- Send Message
// return type Boolean, parameter type string|int|array|object bifrostCors.send(message)
Run JS expression
// return type Boolean, parameter type string bifrostCors.runExpression(expression)
DOM Manipulation
- DOM Manipulation by ID
// return type Boolean, parameter type string bifrostCors.domManipulationById("yourElementID")
- DOM Manipulation by class name
// return type Boolean, parameter type string,int,Objet bifrostCors.domManipulationById(class,index,style)
- Parameter
- class String your element class name
- index int index no of that element in class array
- style Object Style object
- Example:a
if you can access element by
document.getElementsByClassName("myElementClass)[4]
so parameter will be- class "myElementClass"
- index 4
- style {background:"red"}