Awesome
<p align="center"> <img align="center" src="logo.jpg" width="150px" height="150"/> </p>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 | <b>true</b> :- If you already rendering the other domain in iframe <br> <b>false</b> If you are not rendering the other domain in iframe <br> Default <b>false</b> |
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]
<br/> so parameter will be <br/>- class "myElementClass"
- index 4
- style {background:"red"}