Вызов файла .php внутри оператора if в JavaScript - PullRequest
1 голос
/ 25 ноября 2011

Есть ли способ удалить <head>, поместить его в файл .php, а затем использовать вместо него оператор javascript if для вызова определенной головы в зависимости от разрешения экрана?

Теперь я знаю, как сделать очевидное утверждение if, и я читал о сложностях вызова php в javascript из-за клиентской и серверной стороны, но в исходном коде я вижу, что скрипт появляется, но не не работает

Есть идеи?

Ответы [ 3 ]

1 голос
/ 25 ноября 2011

Из вашего комментария, где вы говорите, что вы хотите изменить в заголовке «главным образом таблицы стилей», я понимаю, что вы хотите применять различные таблицы стилей в зависимости от разрешения экрана и / или некоторых других условий.Это вы можете сделать, но не так, как вы описываете.Вместо этого попробуйте что-то вроде следующего:

<html>
<head>
<script>
if (whateveryourconditionis) {
   document.write('<link rel="stylesheet" href="sheet1.css" type="text/css">');
} else (someothercondition) {
   document.write('<link rel="stylesheet" href="sheet2.css" type="text/css">');
   document.write('<link rel="stylesheet" href="sheet3.css" type="text/css">');
} else {
   document.write('<link rel="stylesheet" href="default.css" type="text/css">');
}
</script>
</head>
<body>
</body>
</html>

Я бы обычно не рекомендовал document.write(), но для такого рода целей, когда страница все еще загружается, это совершенно нормально и проще, чем альтернативы.Если вы предпочитаете, вы можете использовать document.createElement();, а затем установить соответствующие атрибуты и добавить его к <head>, но я не буду беспокоиться об этом, если вы не захотите изменить таблицы стилей после загрузки страницы.

Вы также можете использовать библиотеку условного загрузчика, такую ​​как YepNope.js (не беспокойтесь об акценте на загрузку файлов JS, он также сделает CSS).

0 голосов
/ 25 ноября 2011

Чтобы вызвать сценарий PHP, найдите несколько вызовов Ajax.Например, следующий код:

<script type="text/javascript">
function _CallPHP() {
    if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp=new XMLHttpRequest();
    }
    else {// code for IE6, IE5
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange=function() {
        if (xmlhttp.readyState==4 && xmlhttp.status==200) {
            alert("PHP has been executed");
        }
    }

    xmlhttp.open("GET","/phpscript.php",true);
    xmlhttp.send();
}
</script>
0 голосов
/ 25 ноября 2011

вместо этого вы можете попытаться изменить заголовок, используя JavaScript, который вызывается после загрузки заголовка. JavaScript запускается в браузере после или после загрузки страницы, поэтому очевидно, что голова всегда будет на первом месте. но вы всегда можете загрузить другую страницу, используя JavaScript с другой головой.

так что вы можете все page.php? Type = 1

и ваш javascript будет загружен и в зависимости от логики перезагрузит page.php с другим typeid.

page.php будет иметь блок if else, который будет печатать другую головку в браузере.

надеюсь, это поможет ...

...