メディア・ツールバーAPIのロード方法
svcMca.tlb.apiネームスペースの下にあるツールバーAPIモジュールを見つけて、すばやく明確に識別し、同様のJavaScript関数との競合を回避します。 API JavaScriptファイルをロードするには、次の2つのパラメータをiFrameソース・ツールバーURLに連結します:
-
oraParentFrame
: プロトコルおよびポートを含むOracleインスタンスの起点を表します。 たとえば、https://mypodinstance.oraclecloud.com:12345です。 -
oraApiSource
: ツールバーAPIのJavaScriptファイルをロードできるパス(先頭のスラッシュを含む)を表します。 たとえば、/service/js/mcaInteractionV1.js
です。 -
oraTbStyle
: ツールバーがライブ・ウィンドウに表示されるかどうかを示します。oraTbStyle=LiveWindow
は、ツールバーがライブ・ウィンドウに表示されていることを示します。表示されない場合は、値がアプリケーション・ページに表示されることを示す埋込みに設定されます。
次に、MCA Javascriptを動的にロードする例を示します:
<script type="text/javascript"
id="dynamicLoadScript">
(function() {
window.dynamicLoadCompleted = false;
window.staticLoadCompleted = false;
console.log("##DLS: Running DynamicLoadScript to load the Oracle API
JS...");
function getParameterByName(name) {
var match = RegExp('[?&]' + name +
'=([^&]*)').exec(window.location.search);
return match && decodeURIComponent(match[1].replace(/\+/g, ' '));
}
var oraApiPath = '';
var oraOrigin = getParameterByName('oraParentFrame');
var oraApiSource = getParameterByName('oraApiSource');
console.log('##DLS: PageParameters - oraParentFrame: '+oraOrigin+'
oraApiSource: '+oraApiSource);
try {
if (oraApiSource && oraApiSource.startsWith("http")) {
oraApiPath = oraApiSource; //handle case where apiSource is loaded
from external CDN
} else {
oraApiPath = oraOrigin+oraApiSource;
}
console.log('##DLS: Oracle API JS URL: '+oraApiPath);
} catch (e) {
console.log('##DLS: Error '+e);
console.error(e);
}
function onDynamicLoadComplete() {
/* TODO INSERT ANY INIT PROCESSING HERE */
}
if (typeof define === 'function' && define.amd) {
try {
require([oraApiPath], function (mcaTlb) {
window['svcMca'] = {};
window.svcMca['tlb'] = mcaTlb;
window.dynamicLoadCompleted = true;
console.log('##DLS: Successfully loaded Oracle API JS');
onDynamicLoadComplete();
});
} catch (e) {
console.log('##DLS: Error loading ORACLE API JS from URL:
'+oraApiPath);
console.error(e);
}
} else {
var currentNode = document.getElementById('dynamicLoadScript');
var node = document.createElement('script');
node.type = 'text/javascript';
node.charset = 'utf-8';
node.async = true;
node.src = oraApiPath;
node.addEventListener('load', function(evt) {
window.dynamicLoadCompleted = true;
console.log('##DLS: Successfully loaded Oracle API JS');
onDynamicLoadComplete();
}, false);
node.addEventListener('error', function(evt) {
console.log('##DLS: Error loading ORACLE API JS from URL:
'+node.src);
}, false);
currentNode.parentNode.insertBefore(node, currentNode.nextSibling);
}
})();
</script>