我有一个使用Delphi(2009)Web Broker构建的相当简单的Web应用程序。我正在尝试(并且失败)将Javascript输出到页面。
我需要输出的javascript位于<form>
标记的页面正文中,如下所示:
<script>DateInput('mydatefield', true, 'DD-MM-YYYY');</script>
这个javascript应该创建一个漂亮的日期输入控件(在手工制作的HTML页面中测试好)。我的Delphi应用程序中的代码是:
Response.Content := Response.Content + '<script>DateInput(''mydatefield'', true, ''DD-MM-YYYY'');</script>';
正在从最终输出中删除脚本标记。
作为测试,我添加了一个HTML按钮,其中onClick
事件设置如下:
Response.Content := Response.Content + '<input type="button" onClick="alert(''Hello World'')" Value="Hello World"/>';
并且检查页面的来源
alert(''Hello World'')
已成为
alert('Hello World')
我想知道这个单引号的翻译是否来自'
;可能导致我的早期脚本标记被删除?
感谢任何帮助/指示,谢谢。
* 编辑
我应该指出,即使使用'
字符,警报弹出窗口也能正常工作。
* 编辑
我曾尝试使用JQuery脚本,如$(document).ready(function(){etc});并且它正在工作,所以我猜问题不在于WebBroker输出。感谢所有花时间阅读/思考的人。
答案 0 :(得分:2)
尝试HTMLEncode单元HTTPApp:
Response.Content := Response.Content + HTMLEncode('...');