0

サイトがロードされたときにjsファイルをコードphp/htmlページに提供または追加する方法はありますか?500以上のページがあり、すべてのページに小さなコードスニペットを追加する方法を探しています。

例:onloadwww.xyz.com-実行時にそのページにjavascriptファイル/スニペットを追加します

アイデアは、ロードされたページにjavascriptスニペットを追加して、サーバー側ではなく、クライアント側である必要があるようにすることです。

また、以下のコードでは、各ページにチェックスクリプトを追加する必要があります。

サイトの読み込み時にapacheを介してファイルを提供する方法があるかどうかを知る必要がありますか?

4

4 に答える 4

2

<html><head></head><body>whatever</body></html>ある種のものを含む静的ページがあると仮定します。以下は機能し、簡単に修正できるはずです。私のメソッドは下部の終了タグを変更しますが、または開始タグ</body>を変更するために変更できます<head><body>

.htaccess

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

auto_prepend.php

<?php 
ob_start();
?>

auto_append.php

<?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.inc

<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>
于 2012-10-23T19:27:15.313 に答える
0

はい、できます。彼らがjqueryを動的にロードした方法を見てください: オンザフライでjQueryをロードする

典型的なユースケース:jqueryfy http://www.learningjquery.com/2009/04/better-stronger-safer-jquerify-bookmarklet

于 2012-10-23T18:02:52.560 に答える
0

onloadbody属性でスクリプトを呼び出す関数を呼び出すことができます

<body onload="addScript()">
<script type="text/javascript">
function addScript()
{
    document.write("<script src='path\/to\/script.js' type=\"text/javascript\"><\/script>");
}
</script>
于 2012-10-23T18:05:40.800 に答える
-1

上記のAnthonyHatzopoulosソリューションを使用してください。

ob_start();

prependおよびappend(htaccessまたはphp.ini経由)で使用:

<?php
$output = ob_get_clean();
$yourcode = "<yourscript/></body>";
$output = str_replace('</body>', $yourcode, $output);
echo $output;
?>

これは私にとって最良の解決策です。

于 2014-03-22T15:21:01.830 に答える