И отново проблем с нещастният браузър наречен "IE"

  • Автор Автор proba
  • Начална дата Начална дата

proba

Registered
Здравейте.
Значи да обясня на кратко.
Имам една функция в javascript която с innerhtml в един div връща link href към css файл и няколко линка.
Под opera, chrome, firefox - сайта си работи и css-а си зарежда.
Но естествено през проклетия еврейски браузър на microsoft не зарежда css-a.

function share()
{
document.getElementById('share').innerHTML = '<link rel="stylesheet" type="text/css" href="http://site.com/client/gray/css/box.css" />';
}

Това е javascripta.

А в indexa:

<script type="text/javascript" src="share.js"></script>

И body частта на indexa:

<body onLoad="javascript: share();">
<div id="share"></div>
</body>

Така като гледате този код да имате някакви идей от какво е проблема ?
 
Малко странно, но защо не зареждаш CSS-с нормално, а използваш js?

В момента което ми идва на ум е тая функция да я сложиш преди </body>

HTML:
<script>
  function share(){
  code...
}

share();

</script>
</body>

Нещо такова, дали ще има проблем?
 
Е то дефакто си е вътре в body-то.
А зареждам го по този начин защото сайта ще предлага вид услуга.
Да речем както някой сайтове си дават скрипт за уеб брояч и подобни и дават само един script src до някакъв файл и всичко си е на техния сайт.
За това и идеята е цсс-а да се връща чрез това защото и той е на моя сървър и да може кода за потребителите да е съвсем опростен като е един скрипт , един див и на боди един онлоуд..
 
Е защо просто не го добавиш с <style> в javascript-а, ами ще го зареждаш допълнително ....

Пример :

document.write("<style>");
document.write(".style{background: ...... }");
document.write("</style>");
 
[js]
var share = document.getElementById('share');
var styles = document.createElement('link');
styles.setAttribute('rel', 'stylesheet');
styles.setAttribute('type', 'text/css');
styles.setAttribute('href', 'http://site.com/client/gray/css/box.css');
share.appendChild(styles);
[/js]
 
Къде да сложа кода на @alex3 ? във функцията share ?
И под или над innerhtml-то ?
Че не съм запознат с js-то и с последователностан а кода.
А пък от това което даде той дори нямам идея кое какво е.

EDIT:
А и в този div не е само css-a.

Изглежда нещо такова:

function share()
{
document.getElementById('share').innerHTML = '<link rel="stylesheet" type="text/css" href="http://site.com/client/gray/css/box.css" /><div class="test"><img src="asd.png" alt="sad" /> lqlqlqlq <a href="http://google.bg">google</a></div>';
}

Така де въпроса е че кода е супер дълъг.
Има около 20 линка , с картинки и 2 div-a , което го прави по-сложно..
 
ами сложи го както съм ти обяснил в пердния пост ;) И да във самата функция
 
Освен

На @alex кода работи

Не виждам как си обяснил..

Пробвах така:

function share()
{
var share = document.getElementById('share');
var styles = document.createElement('link');
styles.setAttribute('rel', 'stylesheet');
styles.setAttribute('type', 'text/css');
styles.setAttribute('href', 'http://site.com/client/gray/css/box.css');
share.appendChild(styles);
document.getElementById('share').innerHTML = '<div class="test"><img src="asd.png" alt="sad" /> lqlqlqlq <a href="http://google.bg">google</a></div>';
}

Но не го зарежда. Дори и под другите браузъри.
 
Ами как да ти зареди като с тоя код създаваш функцията, а не я стартираш!

HTML:
function share()
{
var share = document.getElementById('share');
var styles = document.createElement('link');
styles.setAttribute('rel', 'stylesheet');
styles.setAttribute('type', 'text/css');
styles.setAttribute('href', 'http://site.com/client/gray/css/box.css');
share.appendChild(styles);
document.getElementById('share').innerHTML = '<div class="test"><img src="asd.png" alt="sad" /> lqlqlqlq <a href="http://google.bg">google</a></div>';
}

След това за да стартираш, добавяш:

HTML:
share();
 
Пак не стана и го направих по друг начин за да зарежда css-а уж по-бързо.
Все пак точката ще е за теб ;)
 
Щом не е станало, седни почети малко основни неща за javascript ;) При мен си става :)
 

Back
Горе