Как сжать / минимизировать JavaScript, который имеет встроенный PHP - PullRequest
4 голосов
/ 05 марта 2011

Мои скрипты jquery содержат php для инициации переменных и т. Д. Я пытаюсь использовать что-то вроде minify, чтобы сжать его и удержать любопытные глаза.PHP вызывает проблемы.Кто-нибудь делал что-нибудь подобное?

вот лишь пример моего php-infused javascript:

    $('input[name=type]:radio').filter('[value=<?=$type?>]').attr('checked', true);
    $('input[name=cert]:checkbox').filter('[value=<?=$cert?>]').attr('checked', true);
    $('input[name=gauge]:checkbox').filter('[value=<?=$gauge?>]').attr('checked', true);

Ответы [ 3 ]

2 голосов
/ 05 марта 2011

PHP пытается полностью отделить JavaScript таким образом. В вашем файле PHP вы сохраняете значения следующим образом:

file.php:

<html>
<head>...</head>
<body>
...
<input type="hidden" id ="value_type" value="<?=$type?>" />
<input type="hidden" id ="value_cert" value="<?=$cert?>" />
<input type="hidden" id ="value_gauge" value="<?=$gauge?>" />
...
</body>
</html>

file.js:

$(function() {

  $.data_values = {

     "type": $("#value_type").val(),
     "cert": $("#value_cert").val(),
     "gauge": $("#value_gauge").val()

  };

});

когда вам нужно использовать значения:

$('input[name=type]:radio').filter('[value="'+$.data_values.type +'"]').attr('checked', true);
$('input[name=cert]:checkbox').filter('[value="'+$.data_values.cert +'"]').attr('checked', true);
$('input[name=gauge]:checkbox').filter('[value="'+$.data_values.gauge +'"]').attr('checked', true);
1 голос
/ 05 марта 2011

Когда весь ваш PHP находится в строках JavaScript, как в вашем примере кода, тогда любой инструмент минимизации, достойный его соли, должен прекрасно работать. Если вы хотите использовать UglifyJS, например, тогда вы можете попробовать его онлайн и посмотреть, работает ли он для вашего кода.

1 голос
/ 05 марта 2011

Minify не будет работать с PHP.Если вам нужно сохранить PHP там, где его не так уж много, вы можете заменить его известным тэгом (т. Е. «ABCDE», «12345»), затем минимизировать его, а затем снова заменить теги вашим PHP.

...