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
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
// return type Object, return all cookies
bifrostCors.getCookie()
// return type string
bifrostCors.getCookie("key")
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
// return type stirng
bifrostCors.getgetLocalStorage("key")
// return type array
bifrostCors.getLocalStorage(["key1","key2"])
// return type Boolean
bifrostCors.setLocalStorage({key: "user", value: "user-1"})
// return type Boolean
bifrostCors.deleteLocalStorage("key")
// return type Boolean
bifrostCors.deleteLocalStorage(["key1","key2"])
-
Bi-directional 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)
// 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
// 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"}