Tôi đang tạo hình ảnh Power BI tùy chỉnh, vì vậy tôi có quyền truy cập vào tệp javascript được nền tảng tiêu thụ. Tôi không có quyền truy cập vào bất kỳ đánh dấu nào, chỉ có một yếu tố được tiêm vào nơi tôi gắn kết hình ảnh của tôi.Gọi lại không được gọi
Tôi cố gắng để gắn kết một Bing Map, các tài liệu giống như thế này:
<div id='myMap' style='width: 100vw; height: 100vh;'></div>
<script type='text/javascript'>
var map;
function loadMapScenario() {
map = new Microsoft.Maps.Map(document.getElementById('myMap'), {});
}
</script>
<script type='text/javascript' src='https://www.bing.com/api/maps/mapcontrol?key=YourBingMapsKey&callback=loadMapScenario' async defer></script>
URL để kịch bản có một param callback
chuỗi truy vấn trong đó bao gồm tên của hàm để gọi.
Vì tôi không có quyền truy cập vào đánh dấu, tôi đang cố gắng làm mọi thứ động trong trình tạo hình ảnh của tôi. Tôi tạo ra một hàm, di chuyển nó đến phạm vi toàn cục, và sau đó tôi thêm chuỗi truy vấn var để tham chiếu nó, nhưng nó không bao giờ được gọi. Bạn có thể thấy bất cứ điều gì tôi có thể bị mất?
constructor(options: VisualConstructorOptions) {
this.host = options.host;
this.elem = options.element;
const self = this;
function moveMethodsIntoGlobalScope(functionName){
var parts = functionName.toString().split('\n');
eval.call(window, parts.splice(1, parts.length - 2).join(''));
}
function methodsToPutInGlobalScope(){
function loadMapScenario(){
console.log("finally called loadMapScenario");
}
}
const script = document.createElement('script');
script.type = 'text/javascript';
script.async = true;
console.log(loadMapScenario === undefined); // false, definitely in global scope
script.src = 'https://www.bing.com/api/maps/mapcontrol?key=xxxxxxxxxx&callback=loadMapScenario';
document.getElementsByTagName('head')[0].appendChild(script);