【发布时间】:2016-07-15 19:18:38
【问题描述】:
我正在尝试摆脱 mojarra 创建的内联 JavaScript 以使用标头 x-content-security-policy。这是一个禁用内联脚本的标头。
为了做到这一点,我向一个名为 jsfajax 的按钮添加了一个类,并且我基本上为佩戴该类的元素添加了一个 onclickevent 侦听器。然后我在那个事件监听器中调用 mojarra.ab。但是源参数为空,我认为这就是为什么我无法访问我的 bean 中的方法。
HTTP 请求表单数据:
j_idt240:j_idt240
javax.faces.ViewState:-xxxxxxxxxxxxxx3:xxxxxxxxxxxx7022321
javax.faces.source:
javax.faces.partial.event:click
javax.faces.partial.execute:j_idt240:j_idt241
javax.faces.behavior.event:action
javax.faces.partial.ajax:true
<h:commandButton styleClass="jsfajax" value="go" action="#{test.sayHi}">
JS:
var es = doc.getElementsByClassName('jsfajax');
for(var i = 0; i < es.length; i++){
myjsf(i, es);
}
});
function myjsf(i , es){
var e = es[i];
e.onclick = function(evt){
log(this); // outputs the button so I don't understand + jsf.ajax.request doesn't throw error
mojarra.ab(this,evt,'action',0,0);
return false;
}
}
因此请求已发送,但它从未到达操作方法。
但是这样做(并且来源是 btn):
<h:commandButton value="go2" action="#{test.sayHi}">
<f:ajax/>
</h:commandButton>
【问题讨论】:
标签: javascript jsf jsf-2.2