DIV-en belüli JS katt. után bezárás probléma

Keresés
Hírlevél
 
ASPC#C++CSSDelphiFlashJavaJavaScriptPascalPerlPHPPythonuniPaaSVisual BasicVisual C++  »    
nyitotta: Csak egy kérdés, idő: 2012.07.01., moderátor: Árnyék
  Értesítés változás esetén Felvétel kedvencekhez Küldés emailben

Kategóriák:Programozási nyelvek » JavaScript

Sorrend:
Időzóna:
Blokkméret:
Oszd meg!
Hali,

Van egy google ads-om, ami egy div-be jelenik meg.
Ha rákattintok a hirdetésre, akkor új ablakba nyitom meg a hirdetést. viszont a div-et, ami az eredeti hirdetést tartalmazta, nem bírom bezárni/elrejteni. próbáltam az onclick-be egy a div-re vonatkozó

function hide() {
document.getElementById("div_reklam").style.display="none";
}
opciót, de semmi hatása sem volt.
Hogyan kellene?
Ennek elvileg mennie kellene, stimmel az ID?
Nincs véletlenül két azonos ID-jű elem? előzmény
nincs. biztos. előzmény
Talán rossz helyre teszem?
<div id="div_jatek" style="text-align:center;">
                        <object classid="clsid:azonosito..." codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="800" height="600"><param name="movie" value="akarmi.swf"><param name="quality" value="high"><param name="menu" value="true"><param name="wmode" value="transparent"><embed width="800" height="600" src="akarmi.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" wmode="transparent" /></object>
                        <div id="div_reklam" style="text-align: center;background:white;width: 336px;height: 280px;position: absolute;top: 50%;left: 50%;margin-top: -140px;margin-left: -168px; display:block;">
                                <script type="text/javascript"><!--
                                        google_ad_client = "ca-pub-123...";
                                        google_ad_slot = "7372...";
                                        google_ad_width = 336;
                                        google_ad_height = 280;
                                        //-->
                                </script>
                                <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js" target="_blank" onclick="hide();"></script>
                        </div>
        </div>
előzmény
És hogyan hívod meg a hide() függvényt? Mert ha a DIV-re teszed mint onclick az nem valószínű hogy menni fog, mivel bent egy iframe van (ha Google hirdetés) amibe ha kattintasz nem fut le a konténer div onclick eseménye. Ehelyett pozicionálj a sarkára egy "X" ikont amivel a kliens majd bezárja ha nem kell neki. előzmény
SCRIPT TAG-nek mióta van onclick eseménye, hmm?
Szerk.: természetesen TARGET attribútuma sincs. előzmény
Ez így nem fog menni.

1: szerintem Google hirdetést nem tudsz új ablakba nyitni
Infó itt: Opening the ads in a new window

2: a bezárás is úgy megy ahogy leírtam: a saját DOM fán belül, pl. egy ikonnal. előzmény
pedig működik a blankolás:) előzmény
A script tag-be tettem a hide()-ot, nem divre.. de láthatod a kódon.
Hova kéne akkor tennem? előzmény
Csak nem ilyen nehéz!? előzmény
Sajnos nem nehéz,hanem nem lehetséges,legalábbis szerintem nincs rá mód,hogy ezt megvalósítsd.
Miért? Azért,mert a hide()-os onclick-eknek a linkeken kellene lenniük,azok viszont a script által generált Google-ös iframben vannak,ezt pedig nem tudod módosítani,mert az már cross domain kérés lenne,a böngészők pedig azt alapból letiltják... előzmény
Ugye a layer-ezést nem engedi a Google, így az nem megoldás.
Csak akad valami, nem lehet ennyire vacak ez a webrendszer..
Milyen műveletet lehet akkor megfogni, ha nem tudjuk az onclik-et?
Van bármi értelmes? Eltüntetni, eltolni, akármi.. előzmény
A linkek új ablakban/fülön nyílnak meg?
Mert akkor ez esetleg beválhat:
<body> taget írd át: <body onblur="hide();"> előzmény
És ezt a fenti kódban hová tegyem?:P
A fenti kódot illesztem be a weboldalba. előzmény
Mint leírtam SCRIPT TAG-nek se onclick sem target attribútuma nincs. előzmény
Nem, nem lehet. Ennyi. A linkek egy olyan iframe-ben vannak amit nem érsz el, így az azokban található tulajdonságokat nem tudod módosítani. Ha lehetne is, az a Google szabályzatának megsértését jelentené. előzmény
Próbáld így, hát ha megy.
document.getElementById('div_reklam').visibility = 'hidden'; előzmény
Ez így trükkös, de lehetséges hogy beválik.
Azt nem értem hogyan nyílik neki új ablakba, ez a furcsa. előzmény
A BODY elemedbe. Ez annyit csinál hogy a BODY ha elveszti a fókuszt meghívja a hide() függvényt. előzmény
Nem zavar hogy le sem fut a JS? A hidden-el még rosszabbat csinálsz mert az adott terület amit lefoglal nem lesz kattintható... Mellesleg szerintem style.visibility lenne a nyerő, nem csak magában, nincs ilyen tulajdonság... előzmény
Csak zárójelben jegyzem meg hogy hogy mindaz amin ügyeskedsz, azaz hogy user rá legyen kényszerítve a reklámra kattintásra az AdSense szabályzatával ellenes. Magyarul csalás. És (részben) ezért is van hogy egy szeparált iframe-t tesznek az oldalba hogy annak a tartalmát ne tudd piszkálni. Ha mégis megteszed, az csalás, és ezen a fórumon ez etikátlan. előzmény
Nem kényszerítem rá a kattintásra.
Nem kell használnia a funkciót, ha nem akarja.
A szabályzat azt mondja, hogy nem utalhatok a hirdetésre, nem tehetek fölé réteget, nem álcázhatom és nem jutalmazhatom a kattintásért. Azt nem mondja, hogy nem helyezhetem ki az oldalra úgy, hogy az a kattintás után eltűnjön.
Legalábbis az én értelmezésem szerint ez nem lehet probléma. előzmény
És hová tegyem? Ha nincs onclick esemény?
Fentebb van a kód. azon belül hová kéne tennem? előzmény
Elhiszem, de akkor mivel magyarázod, hogy a targetet elfogadja?
Ha kihagyom, a szülőben nyílik. ha beírom, akkor új ablakban. előzmény
A JS-ben az azonosítókat átírtam, azért nem fut le:)
Az, hogy elrejtem, vagy 0px-re veszem a div méretét, vagy akármi mást csálok vele, már igazából mind1. csak működne valami.. előzmény
Oszd meg!