Kestirmeler’deki Web Sayfada JavaScript Çalıştır işlemi hakkında
Hemen hemen tüm web sayfaları JavaScript kullanılarak yazılmıştır. JavaScript; web tarayıcıları içerisinde animasyonlar, interaktif menüler, video oynatmalar ve daha da fazlası olmak üzere dinamik etkiler yaratan bir programlama dilidir. Genel olarak bir web sitesini gezerken JavaScript size gösterilmez. Ancak Web Sayfada JavaScript Çalıştır işlemini içeren bir kestirme oluşturarak ve sonra kestirmeyi Safari uygulamasında çalıştırarak bir web sayfasının JavaScript’ini denetleyebilirsiniz.
Bir web sayfasında özel JavaScript’inizi çalıştıran kestirmelerin sayısız kullanımı vardır. Bir web sayfasından belirli verileri alan ve sonra bu verileri bir göreve dahil eden kestirmeler yaratabilirsiniz. Buna örnek olarak Sınıf programını alıp sonra onu Takvim uygulamasına eklemek ya da bir Facebook grubundaki üye verilerini dışarı aktarıp sonra bunları bir hesap tablosuna eklemek verilebilir.
Bir web sayfasını değiştirmenize izin veren, örneğin web sayfasındaki metnin fontunu değiştiren veya videonun oynatma hızını değiştiren kestirmeler de yaratabilirsiniz.
Web sayfasında JavaScript çalıştıran kestirmeleri kullanma hakkında daha fazla bilgi için Kestirmeler’de Web Sayfada JavaScript Çalıştır işlemini kullanma konusuna bakın.
Web sayfası verilerini alma hakkında
Web Sayfada JavaScript Çalıştır işlemi, belirli kriterlerle eşleşen tüm öğeleri alıp sonra verilerle bir görev gerçekleştirmek (veya öğeleri daha fazla incelemek için) için bu öğeleri yineleyerek bir web sayfasındaki verileri almanızı sağlayabilir.
Örneğin, bir web sayfasındaki tüm görüntü öğelerinin bir listesini yaratmak için şunu kullanın:
var elements = document.querySelectorAll("img");
Başka bir örnekte sınıfı “post” olan her öğeyi almak için şunu kullanın:
var elements = document.querySelectorAll(".post");
Bir NodeList yaratıldıktan sonra şuna benzer bir şeyi kullanarak öğeleri yineleyebilirsiniz (öğeleri daha fazla filtrelemek veya öğeleri bir veri yapısına eklemek için):
var elements = ...;
for (let element of elements) {
// ...
}
Web sayfası sonuçlarını sorgulama hakkında daha fazla bilgi için https://developer.mozilla.org/Selectors ve https://developer.mozilla.org/SelectorAll sayfalarına bakın.
Web Sayfada JavaScript Çalıştır girişi
Web Sayfada JavaScript Çalıştır işleminin girişi etkin bir Safari web sayfası olmalıdır. Bu, paylaşma sayfasındaki Kestirmeler İşlem Genişletmesindeki Kestirmeler’den kestirmenin çalıştırılması gerektiği anlamına gelir (özellikle Safari, SFSafariViewController veya ASWebAuthenticationSession’daki).
Bir kestirme, paylaşma sayfasından çalıştırıldığında Safari uygulamasındaki girişi kestirmenizin ilk işlemine geçirilir.
Web Sayfada JavaScript Çalıştır işleminde giriş bir Safari web sayfası olmalıdır, ancak Sihirli Değişkenler’i kullanarak da işleme ek veriler ekleyebilirsiniz. Örneğin, aşağıdaki kestirme bir web sayfasında videoyu değiştiren bir Web Sayfada JavaScript Çalıştır işlemi içerir. Videonun oynatma hızı Hız değişkeni ile denetlenir.
İpucu: Change Video Speed (Video Hızını Değiştir) kestirmesi Galeri’de bulunabilir.
Web Sayfada JavaScript Çalıştır işlemi kestirmenizdeki ilk işlem değilse kestirmeyi çalıştırdığınızda bir hata iletisi görünür.
Bunu düzeltmek için Değişkeni Al işlemini ekleyebilirsiniz ve içeriğini Web Sayfada JavaScript Çalıştır işlemine geçirmesi için parametresini Safari web sayfasına ayarlayabilirsiniz.
Kestirmelerin Safari’de çalıştırılması hakkında bilgiler için Başka uygulamalardan kestirme oluşturma ve çalıştırma konusuna bakın.
Web Sayfada JavaScript Çalıştır çıkışı
Verileri döndürmek için JavaScript’te tamamlama işleyicisini çağırmalısınız (completion(result)
gibi). JavaScript genellikle eşzamansız modellerle kullanılır, çağırma istenerek eşzamanlı değildir. Bu şekilde işlemi eşzamansız olarak bitirebilirsiniz. Örneğin aşağıdaki geçerlidir:
window.setTimeout(function() {
completion(true);
}, 1000);
Web Sayfada JavaScript Çalıştır işleminin çıkışı herhangi bir geçerli JSON veri türü olup şunları içerir:
Dizgi
Sayı
Boole (doğru veya yanlış)
Dizi (herhangi bir başka geçerli JSON türünü içeren)
Sözlük (herhangi bir başka geçerli JSON türünü içeren)
boş
tanımsız
JSON hakkında daha fazla bilgi için Kestirmeler’de JSON’yi kullanma hakkında konusuna bakın.
Perde arkasında, Kestirmeler döndürülen değeri otomatik olarak kodlayıp kodunu çözerek JavaScript ile Kestirmeler uygulaması arasında iletişim kurar. Böylece tamamlama işleyicisini çağırmadan önce JSON.stringify(result)
’ı çağırmanız gerekmez.
Dönüş değeri JSON olduğu için belirli dönüş değerleri iyi çalışmayabilir. Örneğin bir işlev veya Node faydalı bir JSON ile kodlanmış gösterim içermez. Bu durumda ihtiyacınız olan JSON uyumlu değerleri içeren bir Dizi/Sözlük yaratmanız önerilir.
Node’lar hakkında daha fazla bilgi için https://developer.mozilla.org/Node sayfasına bakın; işlevler hakkında daha fazla bilgi için https://developer.mozilla.org/Functions sayfasına bakın.
Not: JavaScript’deki bir nesne bir sözlük olduğu için temel nesneler de JSON’a dönüşür.
İpucu: Web Sayfada JavaScript Çalıştır işlemindeki herhangi bir veriyi geri döndürmek istemiyorsanız işlevde herhangi bir argüman olmadan completion()
’ı çağırabilirsiniz (tanımlanmayan
geçerli bir çıkış olduğu için). Bu, completion(undefined)
çağırmayla aynıdır.
Web Sayfada JavaScript Çalıştır işlemi süre sınırı
Safari’deki tüm JavaScript genişletmeleri gibi, Web Sayfada JavaScript Çalıştır işlemi de süre sınırına tabidir ve mümkün olduğunca çabuk tamamlanmalıdır. Aşağıdakiler de dahil olmak üzere eşzamanlı işlevler kullanan JavaScript zamanında tamamlanmayabilir:
window.alert()
window.prompt()
window.confirm()
Birkaç saniye süren zaman aşımları; örneğin:
window.setTimeout(function() { completion(); }, 5000);
JavaScript’iniz süre sınırını aşıyorsa kestirmeyi çalıştırdığınızda kestirme tamamlanamaz ve bir JavaScript Zaman Aşımı hata iletisi görünür.
Sözdizimi ve Çalıştırma Hata İşlemesi
Web Sayfasında JavaScript’i Çalıştır işleminde JavaScript yazmak için Safari’de desteklenen herhangi bir sözdizimini kullanabilirsiniz. iOS 12, for of
döngüleri ve let
de dahil olmak üzere ECMA 6 JavaScript sözdizimini destekler.
Kestirmeler uygulamasında Web Sayfada JavaScript Çalıştır işlemi, kestirme Safari genişletmesinden çalıştırılmadan önce temel sözdizimi denetimi yaparak hataları bulmanıza yardımcı olur.
Metin alanına betiği girdikçe sözdizimi vurgulama JavaScript’inizin geçerli olup olmadığından emin olmanıza yardım eder. Örneğin, biz dizgi sonuna tırnak işaretini koymayı unutursanız bu dizgiden sonra gelen tüm metin vurgulanır.
Betiğinizin sözdizimi geçerliyse ama bir çalıştırma hatası içeriyorsa Web Sayfada JavaScript Çalıştır işlemi istisnaları yakalar ve görüntüler. Örneği, betiğiniz bulunmayan bir değişkene veya işleve referans veriyorsa (shortcuts.completion()
gibi), çalıştırmada bir hata görüntülenir.
Gizlilik ve Güvenlik
Bir kestirmenin bir web sayfasında Javascript çalıştırmasına izin verirseniz bu kestirme hassas olabilecek veriler de dahil olmak üzere o web sayfasındaki bilgilerin tümüne erişebilir. Kestirmeler uygulaması, JavaScript kestirmelerinizi güvenli ve gizli bir şekilde çalıştırdığınızdan emin olmak için birkaç önlem alır.
Web Sayfada JavaScript Çalıştır işlemini içeren bir kestirmeyi çalıştırdığınızda kestirmenin web sayfası ile etkileşime geçmek üzere olduğu bilgisini veren bir komut görüntülenir. Bu, kestirmenin, web sayfasındaki parola, telefon numarası veya kredi kartı bilgisi gibi hassas olabilecek verilere erişebileceği anlamına gelir.
İzin Ver’e dokunduğunuzda kestirme belirtilen web sayfasında çalışır. Aynı kestirmeyi aynı web sayfasında yeniden çalıştırırsanız Kestirmeler aynı komutu tekrar göstermez. Bu izin her bir kestirme, her bir web sayfası esasına göre tutulur.
Bir kestirmenin bir web sayfasına erişmesine izin verildikten sonra, Kestirmeler güncellenmiş kötü amaçlı yazılım tanımlarını düzenli aralıklarla indirerek sizi olası kötü amaçlı betiklerden korumak için ekstra önlemler alır. Kestirmeler, bir web sayfasıyla etkileşimde bulunmadan önce JavaScript’i inceler, sonra kötü amaçlı yazılım tanımlarına başvurur. Kestirmeler, bu değerlendirmeye dayanarak betiğe izin verilmesi, betiğin reddedilmesi veya kestirmenin çalıştırılmasına izin verilmeden önce ek komutların görüntülenmesi yönünde yönerge verir.
Not: Bu değerlendirme aygıtınızda yapılır. JavaScript’inizin içeriği (Web Sayfada JavaScript Çalıştır işleminin metin alanındaki) analiz için harici bir sunucuya gönderilmez.
Kestirmenin çalışması engellenirse, açıklayıcı bir hata mesajı görüntülenir.
Önemli: Güvenmediğiniz JavaScript içeren bir kestirmeyi asla çalıştırmamalısınız.