Benim php siteyi kullanmak için etkin javascript olmadan tarayıcılar inkar

8 Cevap php

Im PHP oldukça küçük bir web uygulaması yazıyorum ve "fantezi" bunu yapmak için Dojo kullanarak niyetinde ve büyük olasılıkla (çok sunucu tarafı doğrulama olacak) istemci tarafında bazı doğrulama işlemek.

Ben Javascript benim site için bir gereklilik yapmak istiyorum, ve bu nedenle, bir kullanıcının tarayıcısı JavaScript devre dışı varsa, ya da JavaScript yeteneğine sahip değildir ediyorum, hepsi de siteyi kullanmak mümkün olacak, ve onları bildirmek için bir mesaj olmamalı Bu gereklilik.

I have seen other sites do this, but I can't work out how to enforce it.
For an example, attempt to log in here with username=user and password=user
http://demo.actitime.com/login.do?username=user

Ben o zaman bu aynı şey everypage üzerinde ne isteyeyim.

Herhangi bir yardım takdir.

occhiso

8 Cevap

Ben bu mantıklı bir yaklaşım olduğunu düşünmüyorum.

Javascript olmadan kullanıcılar da siteye erişebilirsiniz böylece sadece site biraz daha fazla çaba koymak. Onlar müşterileri olduğunu unutmayın. Ve muhtemelen javascript devre dışı bırakmak için iyi bir neden var.

İki şey akla gelmektedir:

  • Içerik için <noscript> etiketleri kullanın; ve
  • Bu web sitesinin durumunda ve benzer işlevler için, bunun yerine bir gönderme düğmesi olan, bir onclick işleyicisi ile normal bir düğme var:

Javascript olmadan etkin sunamazlar.

Bunun sadece uygun yanıtı: "Neden isteyeyim?"

Gerçekten, daha iyi bir yaklaşım, bu ilk çalışması yapmayı deneyin olacaktır daha sonra daha sonra fantezi javascript parçaları ekleyerek. Bu şekilde javascript devre dışı bırakmış kullanıcılar hala sınırlı işlevselliğe sahip olsa bile, bunu kullanabilirsiniz.

Biliyorsunuz, 2009 yılı değil, 1997 olduğunu. Bu kesmek ölü ve onlar pislik gibi gömülü, geçmişe aittir.

Yararlı bir cevap gelince: kadar okumak graceful degradation.

Cevabınız gelince: CSS (en azından, size söz şeyler) hiç Javascript ile DOJO ile ne yaptığınızı gerçekleştirebilirsiniz. Javascript etkin değilse o sunucuya gidiş gelişlerini gerektirecek, hepsi bu. Ben size 'mantık' ile ne demek bilmiyorum, ama terimin kanonik duygusu PHP ve muhtemelen javascript kullanarak daha çiftleşmiş sistemi ile yapılabilir iyidir.

Bir gidiş dönüş olmadan giriş doğrulama güzel, ama ben hiçbir javascript veya bunu kullanamaz eğer, sunucu doğrulama hiç-frickin-site daha iyidir.

Evet, gerçekten kötü.

EDIT: Colonel Sponsz işaret another useful link about graceful degradation.

Sadece bu değişken sağlayan sayfasına Ajax kullanarak yönlendirme veya submiting verilere göre sitenizi ziyaret tarayıcılarda bir oturum değişkeni sağlayan sayfanızda bir script koymak. Oturum oturum değişkeni yoktur y sonraki tıklama, bir isteği, bir JavaScript etkinleştirilmelidir tarayıcı başka bir sayfaya, onu yönlendirin.

Bazı gelişmiş kullanıcılar varsayılan olarak JavaScript devre dışı bırakmak ve bir başına web sitesinde bazda etkinleştirin. Ben sadece JavaScript ileri gitmek için gerekli olduğunu, onları uyarmak istiyorum. JS olmadan tarayıcılara metni dispaly, veya JS özürlü ile kullanın:

<noscript>
    <p style="color: Red;">Warning: JavaScript is required to display anything after you login. Please enable JavaScript or use a different browser</p>
</noscript>

Aynı görevi farklı şekilde yapılabilir sağlar - Tek sebebi ben bir sekmeli arayüzü aranıyor. Aynı mantıkla bir sürü "Sekme başına" kullanılır, bu yüzden ayrı bir sayfaya kopmak istemiyordu.

Using dojo, I can achieve this pretty easily by having all the content is separate div's on the same page, then dojo puts each div in it own tab. Without JavaScript, you would see all tabs (the divs) at once.

Orada bu gibi birkaç küçük hıçkırık vardır ve bunu bir gereklilik, o zaman davranmasını ve iyi bakmak olur yapma düşünce ve JavaScript olmayanlar bu hiçbir şekilde bir kritik sitesi anlamına olduğunu akılda sunulmalıdır kaçırmış olur!

Ayrıca, bu sayfayı yeniden yükleyin zorunda kullanıcı olmadan giriş doğrulama zorlamak anlamına gelir.

O kötü mü?

Aklıma iyi nedeni insanların java komut dosyası tabanlı tarayıcılarda çok sayaçları gizleme olmadan formları erişerek ve kullanarak durdurmak için.

Birisi bile Capcha ile spam karar verir ve (sayaçları sürü ona güveniyor), javascript sağlayarak değil kendi isp gizler Örneğin, o zaman ben bir web sitesi olmayan tüm javascript tarayıcıları yasaklama iyi bir fikir olacağını düşünüyorum.

Aslında ben olacağını düşünüyorum.

İyi fikir 'occhiso'.