Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/239.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过ajax加载javascript_Javascript_Php_Jquery_Ajax - Fatal编程技术网

通过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

我正在通过ajax请求通过javascript将以下代码加载到网站中:

    <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。一切正常。

谢谢你。我加载了var
url
本身,没有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一起工作。