我设计了一款可以与html页面配合使用的荧光笔,但是当我尝试与openlaszlo应用程序集成时,我遇到了鼠标事件的问题......
openlaszlo applciation应用程序有一个按钮,在点击时激活荧光笔。应用程序已部署为独立应用程序,并且与按钮对应的功能已写入生成的“index.html”文件中。
laszlo应用程序中定义的按钮代码如下: -
<button name="Highlighter" onclick="highlightController()">Highlighter
<method name="highlightController">
if(parent.check="false"){
this.setAttribute("check", true);
if(this.check == true){
lz.Browser.loadJS('Highlight("true")');
}
else if(this.check == false){
lz.Browser.loadJS('Highlight("false")');
}
}
</method>
</button>
相应的按钮功能如下: -
function Highlight(check) {
alert("button function");
var cursor = {},
divr = {},
dragging = false,
dv=document.createElement('div');
dv.setAttribute('id',"maindiv");
document.body.appendChild(dv);
var maindiv=document.getElementById('maindiv');
function maindivstart(a, b) {
cursor.a = a;
cursor.b = b;
maindivposition();
dragging = true;
$('#maindiv').clone().insertAfter("#maindiv");
}
function maindivsize(a, b) {
divr.left = a < cursor.a ? a : cursor.a;
divr.top = b < cursor.b ? b : cursor.b;
divr.width = Math.abs(a - cursor.a),
divr.height = Math.abs(b - cursor.b);
maindivposition();
maindivresize();
}
function maindivend() {
dragging = false;
}
function maindivposition() {
maindiv.style.top = divr.top + 'px';
maindiv.style.left = divr.left + 'px';
}
function maindivresize() {
maindiv.style.width = divr.width + 'px';
maindiv.style.height = divr.height + 'px';
}
window.onmousedown = ( function (e) {
var a = e.clientX,
b = e.clientY;
e.preventDefault();
maindivstart(a, b);
});
window.onmousemove = ( function (e) {
var a = e.clientX,
b = e.clientY;
e.preventDefault();
if (dragging) {
maindivsize(a, b);
}
});
window.onmouseup = ( function (e) {
e.preventDefault();
maindivend();
});
}
鼠标事件不起作用......任何人都可以帮忙...... !!
答案 0 :(得分:1)
当你有一个使用DHTML运行时的应用程序时,你可以直接调用任何JavaScript函数,不需要通过lz.Browser。
<canvas>
<!-- Calling the alert function from a DHTML OpenLaszlo app -->
<button onclick="window.alert('Calling JS from OpenLaszlo')"
text="Call some JS" />
</canvas>
如果你想为两个运行时编译,最好使用lz.Browser:
<canvas>
<button text="Call some JS">
<handler name="onclick">
lz.Browser.loadJS("alert('Calling JS from OpenLaszlo')");
</handler>
</button>
</canvas>
如果将OpenLaszlo应用程序嵌入HTML页面的代码不正确,则可能存在错误的一个原因。部署应用程序的最佳方法是使用SOLO部署工具(我假设您已经这样做了)。如果某些内容无效,请检查浏览器JavaScript错误控制台是否有错误消息。您也可以直接在控制台中评估表达式。如果在加载应用程序时在控制台中键入以下JavaScript表达式,会发生什么:
lz.Browser.loadJS('alert("true")');
您是否看到任何错误消息?