在我的应用程序中,我正在使用liferay-ui:input-editor。我想将输入编辑器的值转换为javascript变量,如何实现?我试过了
<liferay-ui:input-editor />
<input name="<portlet:namespace />htmlCodeFromEditorPlacedHere" type="hidden" value="" />
function createPopUp(){
var url ="<%=fetchCandidateByIdForPhoneURL%>";
var type= "fetchCandidateInfo";
var candidateId = $('#candidateID').val();
var jobId = $('#JobList').val();
var text1 = $('#text1').val();
var text2 = $('#text2').val();
var text3 = $('#text3').val();
var interviewVenue = $('#interviewVenue').val();
var interviewCC = $('#interviewCC').val();
var interviewBCC =$('#interviewBCC').val();
var startDate = $('#start-date').val();
var interviewType = $('#interviewType').val();
var x ;
function <portlet:namespace />initEditor() {
return '<font style="font-weight: bold">scott was here</font>';
}
function <portlet:namespace />extractCodeFromEditor() {
var x = document.<portlet:namespace />fm.<portlet:namespace />htmlCodeFromEditorPlacedHere.value = window.<portlet:namespace />editor.getHTML();
alert(x);
}
但它表明了这一点 ReferenceError:_InterviewSchedule_WAR_InterviewScheduleportlet_initEditor未定义错误。如何解决它并获取javascript变量中的值
答案 0 :(得分:1)
鉴于所提供的信息,似乎<liferay-ui:input-editor />
缺少javascript初始化函数。正如教程here中指出的那样,OP似乎正在使用(按变量名称命名):
默认情况下,编辑器会调用&#34; initEditor()&#34;尝试预先填充编辑器的主体。在这个例子中,当编辑器加载时,它的值为&#34; scott在这里&#34;用粗体。
(...)
function <portlet:namespace />initEditor() { return '<font style="font-weight: bold">scott was here</font>'; }
答案 1 :(得分:0)
默认情况下,Liferay使用的ck编辑器会尝试调用initEditor()javascript方法来尝试预先填充编辑器的内容。 因此,即使返回空字符串,也应该定义这样的方法。
下面给出一个例子:
<aui:script>
function <portlet:namespace />initEditor() {
return "<%= content %>";
}
</aui:script>
,其中content是字符串变量,其中包含您在加载编辑器时要传入的内容。如果您不想传递初始内容,则只需传递黑色字符串。