我在APEX App页面中寻找导出Jasper报告的解决方案。我有Apex 4.2.2,JasperServer 6.0和Visaualize.js API。问题在于与不同jQuery版本的冲突:我无法在Apex中安装最新版本(Visualize.js所需的2.1.0),因为其他页面将停止工作,因此我希望解决方案是noConflict.js 但是,无法弄清楚如何在我的代码中使用它。到目前为止,我有以下代码,它运行我的报告很好,但导出按钮只是不起作用,因为它需要jQuery 2.1。 0。需要一些帮助 !!! 这是JS代码:
visualize({
auth: {
name: "User",
password: "Password",
organization:"Org"
}}, function (v) {
var $select = buildControl("Export to: ", v.report.exportFormats),
$button = $("#button"),
report = v.report({
resource: "/Public/SomeReport",
params: {"P1":["1"], "P2": ["2"]},
container: "#container",
success: function () {
button.removeAttribute("disabled"); /* this line make problems when trying to Export the Report */
},
error: function (error) {
console.log(error);
}
});
$button.click(function () {
console.log($select.val());
report.export({
//export options here
outputFormat: $select.val(),
//exports all pages if not specified
//pages: "1-2"
}, function (link) {
var url = link.href ? link.href : link;
window.location.href = url;
}, function (error) {
console.log(error);
});
});
function buildControl(name, options) {
function buildOptions(options) {
var template = "<option>{value}</option>";
return options.reduce(function (memo, option) {
return memo + template.replace("{value}", option);
}, "")
}
var template = "<label>{label}</label><select>{options}</select><br>",
content = template.replace("{label}", name)
.replace("{options}", buildOptions(options));
var $control = $(content);
$control.insertBefore($("#button"));
//return select
return $($control[1]);
}});
一些HTML代码:
<button id="button" disabled>Export</button><div id="container"></div>
<script src="http://localhost:8080/jasperserver-pro/client/visualize.js?_opt=false"></script><script src="http://code.jquery.com/jquery-2.1.0.js"></script>
任何帮助或方向在哪里挖?理想情况是让它以某种方式工作,如noConflict()......?!? 感谢
答案 0 :(得分:2)
排序。解决方案是在代码之前添加noConflict脚本:
<script type="text/javascript">
var j$ = jQuery.noConflict();
</script>
将所有$更改为新添加的j $并更改&#39; removeAttribute&#39; to&#39; removeAttr&#39;:
j$button.removeAttr("disabled");
此外,在HTML中添加如下按钮的类型:
<button type = "button" id="button" disabled>Export</button>
通过这种方式,库不会冲突,整个代码可以正常工作。 解决。