通过ajax加载javascript
我正在通过ajax请求通过javascript将以下代码加载到网站中:通过ajax加载javascript,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我正在通过ajax请求通过javascript将以下代码加载到网站中: <div class="modal-body" id="modal-body"> <?php echo $this->Html->script('pdfobject'); ?> <div id="showdoc" style="width: 100%; height: 500px; /*border: 1
<div class="modal-body" id="modal-body">
<?php
echo $this->Html->script('pdfobject');
?>
<div id="showdoc" style="width: 100%; height: 500px; /*border: 1px solid black;*/">
<p><?php echo __('It appears you don\'t have Adobe Reader or PDF support in this web browser. ').$this->Html->link(__('Click here to download the file'), array('action' => 'getFile', '?' => array('id' => $data['Voucher']['id'], 'download' => true)), array()); ?></p>
</div>
<script type="text/javascript">
window.onload = function (){
var myPDF = new PDFObject({
url: "<?php
echo $this->Html->url(
array(
'controller' => 'vouchers',
'action' => 'getFile',
'?' => array(
'id' => $data['Voucher']['id']
//'download' => 'true'
)
),
true
);
?>",
pdfOpenParams: {
navpanes: 0,
toolbar: 0,
statusbar: 0,
view: 'FitBH,0',//'FitH,0', "FitV"
scrollbars: '1',
messages: '0'
}
}).embed("showdoc");
};
</script>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
window.onload=函数(){
var myPDF=新的PDFObject({
url:“”,
pdfOpenParams:{
导航窗格:0,
工具栏:0,
状态栏:0,
视图:“FitBH,0',//”FitH,0',“FitV”
滚动条:“1”,
消息:“0”
}
}).embed(“showdoc”);
};
接近
不幸的是,代码没有执行。如果我通过浏览器直接用这段代码调用php文件,一切都正常。
我想问题是,代码没有执行,因为已经加载了基页。有什么提示或想法吗?谢谢你。我加载了var
url
本身,没有ajax。一切正常。谢谢你。我加载了varurl
本身,没有ajax。一切正常。当您使用ajax js时,您(通常)会得到js的文本。因此,您需要对代码进行“评估”才能运行它。由于“eval”的使用在某些情况下可能是有害的,因此我建议将脚本代码编写在单独的文件中,然后创建一个脚本标记,并将src设置为外部文件的路径。当您将脚本标记插入到主体中时,它将自动获取脚本并运行它,而不需要对脚本进行显式ajax调用。但它不会运行任何window.onload事件,因为在您进行ajax调用之前已经加载了该窗口。如果要在iframe或新标签中使用,只需使用超链接即可。谢谢。我现在明白了,我必须使用evaluate。但加载后如何执行代码?像$('#showdoc').onload这样的东西工作吗?不要对这类东西使用eval。您能解释一下“通过ajax请求通过javascript将以下代码加载到网站”是什么意思吗。因为如果在ajaxing html字符串后插入'showdoc'div时,这只是页面的一部分,那么您可以将所有的JS移动到使ajax调用为否的函数中?上述代码(全部代码)由ajax加载到模式(引导模式)中。上面的代码将一个pdf文件加载到模式文件中。或者,我可以通过ajax加载url变量,并以某种方式刷新函数。为什么不在主函数中运行javascript来进行ajax调用并将html插入模式?为什么额外的pdf javascript必须包含在ajax中的html中?但值得庆幸的是,它现在可以与url一起工作。当您使用ajax js时,您(通常)会获得js的文本。因此,您需要对代码进行“评估”才能运行它。由于“eval”的使用在某些情况下可能是有害的,因此我建议将脚本代码编写在单独的文件中,然后创建一个脚本标记,并将src设置为外部文件的路径。当您将脚本标记插入到主体中时,它将自动获取脚本并运行它,而不需要对脚本进行显式ajax调用。但它不会运行任何window.onload事件,因为在您进行ajax调用之前已经加载了该窗口。如果要在iframe或新标签中使用,只需使用超链接即可。谢谢。我现在明白了,我必须使用evaluate。但加载后如何执行代码?像$('#showdoc').onload这样的东西工作吗?不要对这类东西使用eval。您能解释一下“通过ajax请求通过javascript将以下代码加载到网站”是什么意思吗。因为如果在ajaxing html字符串后插入'showdoc'div时,这只是页面的一部分,那么您可以将所有的JS移动到使ajax调用为否的函数中?上述代码(全部代码)由ajax加载到模式(引导模式)中。上面的代码将一个pdf文件加载到模式文件中。或者,我可以通过ajax加载url变量,并以某种方式刷新函数。为什么不在主函数中运行javascript来进行ajax调用并将html插入模式?为什么额外的pdf javascript必须包含在ajax中的html中?但值得庆幸的是,它现在与url一起工作。