![](/img/trans.png)
[英]How can I include an external javascript file that contains coldfusion code?
[英]How can I include PHP file in my JavaScript code?
用于包含我的文件的PHP代码在我的脚本中不起作用:
<script type="text/javascript">
function open_dialog() {
var box_content = '<div id="box_content"><?php include 'includes/dialog_box.php';?><a href="javascript:close_dialog()">close</a></div>';
document.getElementById('dynamic').innerHTML = box_content;
}
function close_dialog() {
document.getElementById('dynamic').innerHTML = '';
}
</script>
请帮忙。
相对于这两个答案的说法,如果这一切都发生在PHP文件中,并且您包含的PHP脚本输出的内容与您拥有的JS的结构不冲突,那应该很好用。
考虑报价问题:
如果您的脚本输出说: <p class='hey'>Hey there</p>
,则JS可能有问题,因为最终输出看起来像这样:
var box_content = '<div id="box_content"><p class='hey'>Hey there</p><a href="javascript:close_dialog()">close</a></div>';
注意冲突的引号。 我知道您可能不会这样做,但我想告诉您在使用这些东西时要特别小心,尤其是引号和退出JS变量上下文。
最重要的一点: 确保所包含的脚本实际上输出了所需的HTML 。 还要确保其中没有换行符,因为这在JS中是无效的:
var box_content = '<div id="box_content"><p class="hey"> One line Another line </p>...';
并且应该在一行中:
var box_content = '<div id="box_content"><p class="hey">One line Another line</p>...';
或简而言之:
var box_content = '<div id="box_content"><p class="hey">' +
'One line' +
'Another line' +
'</p>...';
为了确保内容清晰(因为您没有说明include脚本应该做什么以及出现的错误),因为这是PHP,所以不要认为每次调用JS函数时内容都会更新-它惯于! PHP将只渲染一次输出,仅此而已,它将内容发送到浏览器后立即关闭。 因此,如果您的include脚本应该执行某种动态工作(例如从数据库中获取随机文本),则您需要进行AJAX调用来每次加载新内容。 但是从常识和代码外观来看,这似乎并不是您正在做的,只是想让您知道。
重要提示: PHP代码应位于.php文件中,而不适用于.js文件,因此请在主页中编写函数(如果尚未这样做)
为了防止错误,您可以将“ include / dialog_box.php ”的内容加载到变量中,然后用一个小的正则表达式将所有'
替换为\\'
,这样就可以确保没有与JS冲突的引号:
var content = "<?php include 'includes/dialog_box.php';?>";
content.replace(/'/g, "\\'");
然后将content
的值放在box_content
变量中:
var box_content = '<div id="box_content">' + content + '<a href="javascript:close_dialog()">close</a></div>';
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.