我有这个带外部函数调用和局部变量的html代码:
document.getElementById("data").innerHTML='<a href="#" onClick="cordova.exec("ChildBrowserCommand.showWebPage", "'+vivijesolo+'");"><img src="'+vivifoto+'" on;></a>';
问题在于,它看到了变量,并且everthing很好,但函数cordova.exec无法执行。
为什么? :(
答案 0 :(得分:2)
"
打破onClick
属性。它只会看到onClick="cordova.exec("
然后因为引用结束而停止
试试这个
var elem = document.getElementById("data");
elem.innerHTML = '<a href="#"><img src="'+vivifoto+'"></a>';
elem.firstChild.onclick = function() {
cordova.exec( "ChildBrowserCommand.showWebPage", vivijesolo );
};
答案 1 :(得分:0)
您必须正确编码事件处理程序:
onClick="cordova.exec("ChildBrowserCommand.showWebPage","'+vivijesolo+'");"
答案 2 :(得分:0)
我认为这里存在第二个问题。我不认为你可以用这种方式创建你的活动。看看这个问题:
Is it possible to append to innerHTML without destroying descendants' event listeners?
简单地使用innerHTML imho将无法正确设置事件。