Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/469.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 仅在Microsoft Edge中呈现刮取的页面_Javascript_Asp.net_Mapbox - Fatal编程技术网

Javascript 仅在Microsoft Edge中呈现刮取的页面

Javascript 仅在Microsoft Edge中呈现刮取的页面,javascript,asp.net,mapbox,Javascript,Asp.net,Mapbox,我有一个MapBox页面,我正试图保存为图像,我在Microsoft Edge和Internet Explorer中运行良好,但我没有在Chrome或Firefox中渲染任何元素???当我在debug for Firefox中运行它时,我可以看到元素填充和页面实际正确显示,但是如果我运行它而不单步执行代码,它仍然会显示为空。Chrome或Firefox的控制台中没有错误或警告???有什么想法吗?好像有什么隐藏的安全问题 function ShowMap() { var OpenWindow =

我有一个MapBox页面,我正试图保存为图像,我在Microsoft Edge和Internet Explorer中运行良好,但我没有在Chrome或Firefox中渲染任何元素???当我在debug for Firefox中运行它时,我可以看到元素填充和页面实际正确显示,但是如果我运行它而不单步执行代码,它仍然会显示为空。Chrome或Firefox的控制台中没有错误或警告???有什么想法吗?好像有什么隐藏的安全问题

function ShowMap() {
var OpenWindow = window.open('ExportMap.html', '_blank', 'width=1500,height=1500,resizable=1');
var imgMap = map.getCanvas().toDataURL('image/png', 1.0);
OpenWindow.document.getElementById('imgExportMap').src = imgMap;
var objLegend = document.getElementById('legend');
var divLeg = OpenWindow.document.getElementById('divLegend');
divLeg.innerHTML = objLegend.innerHTML;
}

<body>
<div id="divRow" class="divRow">
<div id="divCarrierInfo">
<button id="btnSave" class="btnMapAction" onclick="SavePageAsImg()" type="button">Save As</button>
<button id="btnPrint" class="btnMapAction" onclick="window.print()" type="button">Print</button</div>
<div id="divTitle">
<textarea id="taTitle">"Replace this text with your map title"</textarea>
</div>
</div>
<div id="divMapElements">
<div id="divLegend"></div>
<div id="divMap">
<img id="imgExportMap" src="" alt="None" title="Test">
</div>
</div>
<img id="result-image" src="" alt="None" title="ExportMap">
</body>
函数ShowMap(){
var OpenWindow=window.open('ExportMap.html','u blank','width=1500,height=1500,resizeable=1');
var imgMap=map.getCanvas().toDataURL('image/png',1.0);
OpenWindow.document.getElementById('imgExportMap')。src=imgMap;
var objLegend=document.getElementById('legend');
var divLeg=OpenWindow.document.getElementById('divLegend');
divLeg.innerHTML=objLegend.innerHTML;
}
另存为

打印这可能与:
选项有关。preserveDrawingBuffer
。如果设置为
true
,则可以使用
map.getCanvas().toDataURL()
将地图的画布导出为PNG。作为性能优化,默认情况下这是
false


话虽如此,我还是建议像我在评论中提到的那样进行调查。此API提供了生成地图静态图像的预期方法,可能比导出地图画布对象的PDF更有效。您注意到您对包含用户生成的地图标题感兴趣——这可以包含在静态图像API中。如的可选参数中所述,
addLayer
参数允许您将添加到地图中。对于文本,您需要添加一个,并将layout属性设置为用户提供的标题值。

出于好奇,这是什么用例?Mapbox提供了一个非常强大的静态图像API,用于捕获静态地图图像,即使使用自定义样式和覆盖:。关于静态地图的正确使用也有一些指导原则,因此保存Mapbox页面的图像可能在正确的数据使用和属性方面存在问题:。谢谢。我去看看。我工作的主要驱动因素是需要用户创建地图标题。