![]() | |
| | #1 (permalink) |
| Üye Üyelik Tarihi: 01/2005
Mesaj: 12
|
Merhaba, Yanlış anahtar kelimelerle mi aratıyorum ya da böyle birşey imkansız mı bilemiyorum ama 1 haftadır tıklamadığım link, okumadığım forum kalmadı ve bu sorunun yanıtını hiçbiryerde bulamadım. Umarım başlığı doğru yere açmışımdır... Durum: tamamen html den oluşan bir site var elimde. Linkler, tasarım, butonlar vs. hepsi default.html adlı sayfamda ve bu sayfada ID=icerik olan bir iframe bulunuyor. tüm butonlar linkler özetle tüm alt sayfalarım bu alanda (iframein içinde) açılıyor. site desktopta çalışıyormuşcasına hızlı ve sanki flashla yapılmış gibi derli toplu ve şık oldu... Sorunum: diyelim ki ürünler sayfasının linkini birine gönderdiniz ya da google da listelenen linki tıkladınız. olması gerektiği gibi urunler.htm açılıyor ancak tek başına bu sayfa açıldığında "ee neresi burası şimdi" diyorsunuz haliyle... ne logo, ne buton ne link.. boş bi sayfada 1 adet tablo ve içeriği...bu iç sayfalara özellikle link, buton, logo vb. şeyler koymuyorum çünki default.html içinde (iframe içinde) açıldığında çok çirkin ve anlamsız oluyor Yardım istediğim nokta: bu alt sayfala es kaza direk linkten gidildiğinde (örn: arama motoru, yada direk url yoluyla) sayfayı default.html e yönlendirmek mümkün müdür? varsın default sayfasında ürünler değil de ana sayfa yüklü haline gitsin önemli değil ama bir şekilde default sayfasına ulaşsın istiyorum... Başarısız deneme: Alt sayfaya direk yönlendirme verirsem bu sefer default.html de o sayfayı çağırınca iframe içinde default.html i açıyor Yardımlarınız için şimdiden teşekkür ederim. Saygılarımla, Deniz Özlem Danışman |
| | |
| | #2 (permalink) |
| Kurtarıcı değil, Deterjan Üyelik Tarihi: 01/2003
Mesaj: 94
|
Referer bilgisine bakılarak bir çözüm geliştirilebilir. urun.html içinde Kod: window.onload = function()
{
var ref = document.referer;
var siteUrl = "http://www.felan.com";
if (ref.substring(0, siteUrl.length) != siteUrl)
window.location.href= 'default.html?include=urun.htm';
}
Kod: // Daha önce yazmış olduğum QueryString'den
// parametre alma fonksiyonu
//
// Sende kullanabilirsin.
function getRequestParameter(param)
{
param += "=";
str = window.location.search;
ind1 = str.indexOf(param);
if ((ind2 = str.indexOf('&', ind1)) >= 0)
return str.substring(ind1 + param.length, ind2-ind1 + 1);
else
return str.substring(ind1 + param.length);
}
window.onload = function()
{
var pageUrl = getRequestParameter('include');
if (pageUrl.length > 0 )
document.getElementById('IFrameId').src = pageUrl;
}
|
| | |
| | #3 (permalink) |
| Üye Üyelik Tarihi: 01/2005
Mesaj: 12
|
ilginize çok teşekkür ederim.. hemen denedim kodu ama sanırım birşeyleri yanlış yapıyorum. sayfa eskisi gibi açılıyor ve hatalı açılıyor. hata detayında şöyle yazıyor: Satır:13 Karakter:3 Hata: 'undefiend', null veya bir nesne değil Bunun ne anlama geldiğini gerçekten anlamadım :/ |
| | |
| | #4 (permalink) |
| Kurtarıcı değil, Deterjan Üyelik Tarihi: 01/2003
Mesaj: 94
|
Yukarıdaki kodda bazı şeyler örnek olarak yazılmıştır. Mesela IFrameId adında bir IFrame nesnesi default.html içinde var olarak kabul edilmiştir. Dolayısıyla sizin sayfanızda çalışmayabilir. Sizden beklenen buradaki kodun mantığını anlayıp kendinize uyarlamanızdır. Fakat eğer bunu halledemezseniz tam kodunuzu veya kodun ilgili yerlerini buraya yazınız (default.htm ve urun.html gibi), belki birileri uğraşmak isteyip isteğinizi yerine getirebilir. Fakat buna güvenmezseniz daha iyi edersiniz |
| | |
| | #6 (permalink) |
| Kurtarıcı değil, Deterjan Üyelik Tarihi: 01/2003
Mesaj: 94
|
Benim getRequestParameter fonksiyonu da biraz hatalı göründü şu an gözüme. Onun galiba daha güncel bir versiyonunu yazmıştım sanırım :-) Firefox + FireBug kurup, hatanın tam olarak nerde olduğunu bize söyleyebilirseniz daha iyi olur. |
| | |
| | #8 (permalink) |
| Üye Üyelik Tarihi: 06/2004 Yer: İstanbul
Mesaj: 2,269
|
Ben farklı bir çözüm geliştirdim. IE, Opera ve FF'da sorunsuz çalışıyor. 3 farklı sayfa hazırladım ve içerikleri şöyle: Anasayfa: default.html Kod: <script>
var URL = location.href;
function queryString(Deger) {
if(Deger!=null) {
var regEx = new RegExp("(\\?|&)("+Deger+"=)(.*?)(&|$|#)","i");
var exec = regEx.exec(URL);
var Sonuc = RegExp.$3;
} else {
var regEx = new RegExp("(\\?)(.*?)($)","i");
var exec = regEx.exec(URL);
var Sonuc = RegExp.$2;
}
return(Sonuc);
}
function sayfa() {
if(queryString('sayfa')!="") {
return(queryString('sayfa'));
} else {
return("default2.html");
}
}
</script>
<body onload="document.getElementById('Sniper').src = sayfa();">
<iframe id="Sniper"></iframe>
Kod: Bu çokta önemli değil, herhangi birşey yazılabilir. (Aynen kullanırsan bunu okursun) Kod: <script>
function sayfaAdi(neresi) {
var sayfa = neresi != "" ? location.href : neresi;
var son = sayfa.lastIndexOf("?")!=-1 ? sayfa.lastIndexOf("?") : sayfa.length;
return(sayfa.substring(sayfa.lastIndexOf("/")+1,son));
}
function kontrol() {
if(window.frameElement==null) {
location.href='default.html?sayfa='+sayfaAdi()
}
return;
}
document.write(sayfaAdi(window.frameElement));
</script>
<body onload="kontrol()">
</body>
Şimdi açıklamalara ve gerekliliklere geçelim: Ana sayfaya daha önceden yazdığım queryString'den gelen veriyi okuyan scripti koydum ve IFRAME'e bir ID atadım. İkinci olarak ta, queryString'deki "sayfa" değişkenini okuyan bir fonksiyon ekledim ve body'nin onload olayında bu fonksiyonu kontrol ederek ID'si belli IFRAME'in yönünü belirledim. Eğer queryString'de okuduğum değer boşsa (yani anasayfa direkt açılıyorsa) bu fonksiyon varsayılan iframe sayfasına (default2.html) yönlenecektir. Iframe sayfası olarak belirlediğim sayfaya ise sayfanın adını okuyan ve sayfanın direkt açılıp açılmadığını kontrol eden birer fonksiyon ekledim ve kontrol fonksiyonunu iframe sayfasının body elemanının onload olayına ekledim. Eğer sayfa direkt açılıyorsa bu kontrol fonksiyonu devreye girerek sayfanın adını okur ve default.html sayfasına "sayfa" değişkeni aracılığıyla bu sayfanın adını gönderir (default.html?sayfa=iframe.html). Bu sayede hem sayfa ana sayfaya döner hem de ana sayfadaki ilgili iframe'de nu sayfanın içeriği görünür. Kısaca özetleyecek olursak, direkt açılmasını istemediğin tüm sayfalara iframe.html'deki fonksiyonları ekleyip body - onload olayına "kontrol()" yazman gerek. Ana sayfaya ise queryString fonksiyonunu ve bunun aracılığıyla sayfa ismini okuyan "sayfa()" fonksiyonunu eklemeli ve body - onload olayına "document.getElementById('iFrameAdi').src = sayfa();" kodunu eklemelisin. Bunlara dikkat ettikten sonra istediğinin olmaması için hiçbir neden kalmıyor(dur umarım). Ben kullandığım örnek dosyaları cevaba ekledim. Önce iframe.html dosyasını direkt açmaya çalış, sonra da default.html. Aradaki farkı göreceksin. Çok kafan karışırsa kodları incele...
__________________ tuncay.kinali.net |
| | |
| | #10 (permalink) |
| Üye Üyelik Tarihi: 06/2004 Yer: İstanbul
Mesaj: 2,269
|
Ekte gönderdiğim dosyalarda herhangi bir sorun yok. Sayfa içinde başka scriptler varsa sorunun kaynağı onlar olabilir. Tam olarak hatayı bilmediğim için net konuşmam zor...
__________________ tuncay.kinali.net |
| | |
![]() |
| Bookmarks |
| Seçenekler | |
| |
Benzer Konular | ||||
| Konu | Konuyu açana göre | Forum | Cevap | En Son Mesaj |
| SQL konusunda yardim | sercankop | Veritabanları & SQL | 0 | 09/04/2007 09:08 |
| Kur konusunda help pls... | HolyKa | PHP | 2 | 09/11/2005 14:53 |
| ASP YTL Konusunda | cemunur | ASP | 8 | 30/12/2004 15:54 |
| ADSL konusunda | Mkemal | Ağ / Güvenlik | 3 | 02/10/2004 17:58 |
| web konusunda yardım | hb_barak | Web Tasarım | 3 | 21/09/2004 20:36 |
| Reklamlar & Desteklenenler | |
| Hassas Valf | Hassas Kaplama | Antalyamız | Gazete | Ticari Bilişim | Hakan Müştak | Rüya Tabirleri | Kadın | Hastalıklar | Cepte msn ve e-posta | Webmaster | Antalya Aupair | Turkish Property Antalya | Forum | Chat | Perde | Adsl | Araba | bolindir.com | guncelle.com | livescore | Web Tasarım | evden eve nakliyat | forum | evden eve | sohbet | Resimcim| Kalifiye İnsan Kaynakları | Web Tasarım | Oyun | Yusuf KOÇ | Akın Yorulmaz | şiir | UFO | Web Tasarım | Oyunlar | Canlı Tv | |