Ide saya adalah membiarkan dua fungsi panggilan JavaScript melalui DOM.
Cara melakukannya sederhana ... Kita hanya perlu mendefinisikan tag html js_ipc yang tersembunyi. Setelah callee register klik dari tag js_ipc yang tersembunyi, maka Penelepon dapat mengirimkan event click untuk memicu callee. Dan argumennya disimpan jika Anda ingin lulus.
Kapan kita perlu menggunakan cara di atas?
Terkadang, dua kode javascript sangat rumit untuk diintegrasikan dan begitu banyak kode asinkron di sana. Dan kode yang berbeda menggunakan kerangka kerja yang berbeda tetapi Anda masih perlu memiliki cara sederhana untuk mengintegrasikannya bersama.
Jadi, dalam hal itu, tidak mudah melakukannya.
Dalam implementasi proyek saya, saya menemui kasus ini dan sangat rumit untuk mengintegrasikannya. Dan akhirnya saya menemukan bahwa kita dapat membiarkan dua javascript saling memanggil melalui DOM.
Saya menunjukkan cara ini dalam kode git ini. Anda bisa mendapatkannya dengan cara ini. (Atau baca dari https://github.com/milochen0418/javascript-ipc-demo )
git clone https:
cd javascript-ipc-demo
git checkout 5f75d44530b4145ca2b06105c6aac28b764f066e
Di mana saja, Di sini, saya mencoba menjelaskan dengan kasus sederhana berikut. Saya berharap cara ini dapat membantu Anda dalam mengintegrasikan dua kode javascript yang berbeda dengan lebih mudah dari sebelumnya tidak ada library JavaScript untuk mendukung komunikasi antara dua file javascript yang dibuat oleh tim yang berbeda.
<html>
<head>
<link rel="stylesheet" type="text/css" href="css/style.css" />
</head>
<body>
<div id="js_ipc" style="display:none;"></div>
<div id="test_btn" class="btn">
<a><p>click to test</p></a>
</div>
</body>
<script src="js/callee.js"></script>
<script src="js/caller.js"></script>
</html>
Dan kode css / style.css
.btn {
background-color:grey;
cursor:pointer;
display:inline-block;
}
js / caller.js
function caller_add_of_ipc(num1, num2) {
var e = new Event("click");
e.arguments = arguments;
document.getElementById("js_ipc").dispatchEvent(e);
}
document.getElementById("test_btn").addEventListener('click', function(e) {
console.log("click to invoke caller of IPC");
caller_add_of_ipc(33, 22);
});
js / callee.js
document.getElementById("js_ipc").addEventListener('click', (e)=>{
callee_add_of_ipc(e.arguments);
});
function callee_add_of_ipc(arguments) {
let num1 = arguments[0];
let num2 = arguments[1];
console.log("This is callee of IPC -- inner-communication process");
console.log( "num1 + num2 = " + (num1 + num2));
}