我正在使用 ArcGIS javaScript 3.5,我想实现打印地图。我知道它是一个内置工具,我们也可以使用该服务,但我的问题是一键实现所有三个步骤(打印、打印、打印输出) (更喜欢其他点击)。
为此,我做了类似的事情——
首先我在设计级别添加了一个 div 并将可见性设置为 false
<div id="print_button" style="visibility:hidden;display:none;"></div>
在初始化中我使用 esri.dijit.Print 选项
var app = {};
app.webmapId = "8315cf7d20f0484e869c4791f70f4f15";
app.printUrl = "abc/arcgis/rest/services/Utilities/PrintingTools/GPServer/Export%20Web%20Map%20Task";
var layouts = [{
"name": "Letter ANSI A Landscape",
"label": "Landscape (PDF)",
"format": "pdf",
"options": {
"legendLayers": [], // empty array means no legend
"scalebarUnit": "Miles",
"titleText": "Map"
}
}];
var templates = [];
dojo.forEach(layouts, function (lo) {
var t = new esri.tasks.PrintTemplate();
t.layout = lo.name;
t.label = lo.label;
t.format = lo.format;
t.layoutOptions = lo.options
templates.push(t);
});
app.printer = new esri.dijit.Print({
"map": map,
"templates": templates,
url: app.printUrl,
}, dojo.byId("print_button"));
app.printer.startup();
在我的内部点击中,我想点击这个打印按钮
function export1() {
document.getElementById('print_button').click();//This is not working obviously this is not a button
return false;
}
我怎样才能做到这一点。请帮我。
在 Anyalysis 这个 div 之后我发现了这些元素
<div class="esriPrint">
<span class="dijit dijitReset dijitInline dijitButton esriPrintButton dijitButtonDisabled dijitDisabled"
role="presentation" widgetId="dijit_form_Button_0">
<span class="dijitReset dijitInline dijitButtonNode" role="presentation" data-dojo-attach-event="ondijitclick:_onClick">
<span disabled="" class="dijitReset dijitStretch dijitButtonContents" id="dijit_form_Button_0" role="button" aria-disabled="true"
aria-labelledby="dijit_form_Button_0_label" style="-ms-user-select: none;" data-dojo-attach-point="titleNode,focusNode">
<span class="dijitReset dijitInline dijitIcon dijitNoIcon" data-dojo-attach-point="iconNode">
</span>
<span class="dijitReset dijitToggleButtonIconChar">
●
</span>
<span class="dijitReset dijitInline dijitButtonText" id="dijit_form_Button_0_label" data-dojo-attach-point="containerNode">
Printing
</span>
</span>
</span>
<input tabindex="-1" disabled="" class="dijitOffScreen" role="presentation" type="button" value="" data-dojo-attach-point="valueNode">
</span></div>
<div class="esriPrint">
<span class="dijit dijitReset dijitInline dijitButton esriPrintButton" role="presentation" widgetId="dijit_form_Button_1">
<span class="dijitReset dijitInline dijitButtonNode" role="presentation" data-dojo-attach-event="ondijitclick:_onClick">
<span tabindex="0" class="dijitReset dijitStretch dijitButtonContents" id="dijit_form_Button_1"
role="button" aria-labelledby="dijit_form_Button_1_label" style="-ms-user-select: none;" data-dojo-attach-point="titleNode,focusNode">
<span class="dijitReset dijitInline dijitIcon dijitNoIcon" data-dojo-attach-point="iconNode">
</span>
<span class="dijitReset dijitToggleButtonIconChar">
●
</span>
<span class="dijitReset dijitInline dijitButtonText" id="dijit_form_Button_1_label" data-dojo-attach-point="containerNode">
Print
</span>
</span>
</span>
<input tabindex="-1" class="dijitOffScreen" role="presentation" type="button" value="" data-dojo-attach-point="valueNode">
</span></div>
但是我怎么能调用这个点击事件,因为它很容易找到元素但是调用点击事件并不简单,或者我不知道如何调用 data-dojo-attach-event="ondijitclick:_onClick" 这个事件?
你能建议我如何称呼这个活动吗?