有没有办法在网站加载时向代码 php/html 页面提供或添加 js 文件。我有 500 多个页面,我正在寻找一种将一小段代码添加到所有页面的方法。
例如 onload www.xyz.com - 在运行时将 javascript 文件/片段添加到该页面
这个想法是在加载的页面上添加一个javascript片段,这样它就不会是服务器端,它必须是客户端。
下面提供的代码仍然需要我在每一页上添加检查脚本。
我需要知道是否有办法通过 apache 在站点加载时提供文件?
有没有办法在网站加载时向代码 php/html 页面提供或添加 js 文件。我有 500 多个页面,我正在寻找一种将一小段代码添加到所有页面的方法。
例如 onload www.xyz.com - 在运行时将 javascript 文件/片段添加到该页面
这个想法是在加载的页面上添加一个javascript片段,这样它就不会是服务器端,它必须是客户端。
下面提供的代码仍然需要我在每一页上添加检查脚本。
我需要知道是否有办法通过 apache 在站点加载时提供文件?
假设您有带有<html><head></head><body>whatever</body></html>
某种东西的静态页面。以下应该可以快速解决。我的方法修改了底部结束</body>
标签,但您可以修改它以更改<head>
或开始<body>
标签
<IfModule php5_module>
php_value auto_prepend_file /var/www/vhosts/example.com/httpdocs/auto_prepend.php
php_value auto_append_file /var/www/vhosts/example.com/httpdocs/auto_append.php
</IfModule>
<?php
ob_start();
?>
<?php
$output = ob_get_clean();
$script = file_get_contents($_SERVER['DOCUMENT_ROOT'].'/script.inc');
$output = str_replace('</body>', $script.PHP_EOL.'</body>', $output);
echo $output;
?>
<script>
// using jquery method to attach onload:
jQuery(function(){
// do your js stuff here or load your external js, like with jQuery.getScript() or jQuery.ajax()
// http://api.jquery.com/jQuery.getScript/
// http://api.jquery.com/category/ajax/
});
// or if you want go without a framework and attach your onload event.
// in the most cross browser way see:
// http://stackoverflow.com/questions/1235985/attach-a-body-onload-event-with-js
</script>
是的你可以。看看他们是如何动态加载 jquery 的: Loading jQuery on-the-fly
一个典型的用例:jqueryfy http://www.learningjquery.com/2009/04/better-stronger-safer-jquerify-bookmarklet
onload
您可以调用一个函数,该函数在 body属性中调用脚本
<body onload="addScript()">
<script type="text/javascript">
function addScript()
{
document.write("<script src='path\/to\/script.js' type=\"text/javascript\"><\/script>");
}
</script>
使用上面的 Anthony Hatzopoulos 解决方案。
ob_start();
在前面和追加中(通过 htaccess 或 php.ini)使用:
<?php
$output = ob_get_clean();
$yourcode = "<yourscript/></body>";
$output = str_replace('</body>', $yourcode, $output);
echo $output;
?>
这对我来说是最好的解决方案。