Cześć,
próbuję stworzyć okienko umożliwiające wybranie daty i godziny. Mam wyświetlanie inputa:
// Funkcja tworzy input z możliwością wprowadzenia daty i zwraca kod HTML
//--------------------------------------------------------------------------------------------------------------------------------------------------
function CreateDateInput ($name, $pointer, $class="", $specialstyle="", $id="")
{
if ($class != "")
$class = ' class="'.$class.'"';
if ($specialstyle != "")
$specialstyle = ' style="'.$specialstyle.'"';
if ($id != "")
$id = ' id="'.$id.'"';
return '<input type="text"'.$id.$class.' name="'.$name.'"'.$specialstyle.' /><img src="images/calendar.png" onclick="window.open(\'tools/datewindow.php?pointer='.urlencode($pointer).'\',\'Wybierz datę\',\'width=300px,height=200px,resizable=0,location=0,toolbar=0,menubar=0,status=0,dir
ectories=0,scrollbars=0\');" style="cursor: pointer; vertical-align: middle;"/>'; }
W kodzie wygląda to tak (formularz o nazwie "usersearch"):
CreateDateInput ("regdate", "usersearch.regdate", "horizontal", "width: 100px;")
Arkusz stylów:
.outside_fail
{
width: 888px;
background: rgb(255,253,253); /* Old browsers */
background: -moz-linear-gradient(top, rgba(255,253,253,1) 0%, rgba(192,34,34,1) 39%, rgba(119,37,21,1) 88%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,253,253,1)), color-stop(39%,rgba(192,34,34,1)), color-stop(88%,rgba(119,37,21,1))); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(top, rgba(255,253,253,1) 0%,rgba(192,34,34,1) 39%,rgba(119,37,21,1) 88%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(top, rgba(255,253,253,1) 0%,rgba(192,34,34,1) 39%,rgba(119,37,21,1) 88%); /* Opera 11.10+ */
background: -ms-linear-gradient(top, rgba(255,253,253,1) 0%,rgba(192,34,34,1) 39%,rgba(119,37,21,1) 88%); /* IE10+ */
background: linear-gradient(to bottom, rgba(255,253,253,1) 0%,rgba(192,34,34,1) 39%,rgba(119,37,21,1) 88%); /* W3C */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#fffdfd', endColorstr='#772515',GradientType=0 ); /* IE6-9 */
border: 1px solid white;
border-radius: 5px;
margin: 3px auto;
padding: 5px;
text-align: center;
color: white;
text-shadow: 1px -1px 0px #550000;
}
Natomiast w kodzie okienka mam taką obsługę błędu:
if (isset ($_GET['pointer'])) {
echo '<div class="outside_fail" style="width: 268px; height: 168px; display: table; margin: 10px 0px 0px 10px;"> <div class="valign-inner">
Bezpośredni dostęp do pliku jest niedozwolony.
<br />
<br />
<br />
Jeśli okienko zostało otworzone przez jeden z plików witryny zgłoś błąd pisząc <a href="odnośnik do utworzenia nowej prywatnej wiadomości" target="_blank">prywatną wiadomość</a> do PKua.
</div>
</div>';
}
I teraz okienko jest poprawnie wyświetlane tylko przez Firefoxa. W Chrome raz pojawiają się scrollbary, raz nie, IE i Opera w ogóle jakieś niewymiarowe te okna dają. Gdzie tkwi błąd? Najnowsze wersje przeglądarek.
Ten post edytował PKua 5.05.2013, 12:20:18