Uticaj glavnog CSS web sajta, na CSS skripte koja se ucitava preko JS

Imam jednu skriptu (js, php, html, css) koju povremeno instaliram na po nekom sajtu.
Sama skripta ima svoj CSS. Celokupna skripta se povlaci preko javascripta, ali mi cesto problem pravi pravi CSS samog web sajta, utice na izgled same skripte, pa ista ne izgleda kako treba da izgleda.
Da li neko ima iskustva i nacina kako eliminisati uticaj CSS web sajta na CSS skripte,a da to nije preko iframe?

Na klase i id-eve stavit prefiks, tipa #element u #myscript-element

2 Likes

Ako to radiš preko ajaxa i povlačiš cijeli html i ubacuješ u stranicu, najbolje bi bilo staviti prefikse ili druge klase kako drago kaže.

Druga opcija je da dodaš na svaki atribut u value na kraju !important u css koji povlačiš. Npr:
#neki-id { color: blue !important; font-weight: bold !important; }
Tu ti može nastati problem da ti onda sav glavni css prepiše sa cssom iz skripte, pa ti zezne cijelu stranicu.

Treća opcija je da koristiš iframe. Npr:
<iframe src="link_od_phpa.php" width = "600px" height = "400px"></iframe>

Vjerojatno se sve rendera u samom php fajlu i onda to samo ubaciš u stranicu. Pa ako imaš link tog php fajla onda njega ubaciš u src atribut. Google Chrome i svi ostali forkovi kroma, već jesu ili će uskoro onemogućiti preview sa domena koje nisu iste (zbog sigurnosnih razloga). Tako da ti taj php fajl mora biti na tvojoj domeni, jer je moguće da neće raditi ili neće raditi u bliskoj budućnosti.

Hvala na odgovoru @nekirandomlik!
Radi se o mojoj nekoj php/mysql, javascript/ajax skripti koju povremeno prodam. Sve se desava na jednom domenu. Sto se tice ogranicenosti povlacenja php fajlova preko ajaxa, browser nece dozvoliti ni ukoliko je sam sajt otvoren sa www, a php fajl pozivam bez www.
Pozivam php fajl preko ajaxa koji vuce sa sobom i neki svoj css.
Ono sto sam koristio u css-u scrpte, ali ne na svakom mestu je “!important” i u vecini slucajeva pomaze, negde kao da nece. Klase koje koristim se dosta razlikuju od standardnih koje se najcesce koriste kod bootstrapa.
Nedavno sam imao uticaj iz css-a sajta sa klasom “.main table” na izgled kalendara, te mi je nikako ili jedva poslo za rukom da to resim, dodavajuci “!important”.
U svakom slucaju, pozabavicu se time malo vise cim mi vreme dozvoli.

Zašto ne pozivaš sa www? Baš su počeli zajebavat sa tim corsom. Probaj si u tu skriptu koju povlačiš staviti headere da ti dopuste cors.

if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') {
        
        if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_METHOD']))
          
            header("Access-Control-Allow-Methods: GET, POST, OPTIONS");
        
        if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']))
            header("Access-Control-Allow-Headers: {$_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']}");
    
        exit(0);
    }
    
}

Ovo ti možda pomogne da nemaš problema ako url ima www.

Pa stavi skriptu u iframe i neće ti brkati glavni css i css u skripti.

Nadam se da će ti pomoći.

Znas kako, u vezi ovog “www” prilikom instalacije skripte, postoje polja koja treba popuniti i konfigurisu config fajl, te onaj koji instalira skriptu, iako njegov sajt radi bez www, on ukuca u putanju www, te se onda pozivanje php fajla iz ajaxa vrsi sa www, a sajt radi sa www, sto prepoznaje kao dva razlicita sajta.
Ubacio sam ja ovako samo “header(“Access-Control-Allow-Origin: *”);”, ali mislim da ni to nije pomoglo, probacu s ovim tvojim primerom.
Sto se toga tice, najbolje resenje je da se to polje za putanju eliminise i da se ta varijabla u config fajlu automatski kreira, jer nije neophodno da to neko radi.
Ovo je slucaj ukoliko se skripta instalira i nije neresivo.
Imam drugu verziju koja radi online na mom sajtu, tacnije, korisnici se registruju, naprave ono sto je potrebno njima, uzmu kod i postave kod skripte u okviru njihovog sajta, bez neke instalacije.

Sto se tice iframe, koristio sam ranije, odavno, ali sam tada imao problem, s obziirom da se radi o responsive prikazu, u iframe su mi se javljali skrolovi. Sada mi je to resivo, cini mi se, ali ne bih time da se bavim, jer nekako i sam ne volim da postavim iframe u svom kodu.

Hvala na pomoci!