Jump to content
  • 0

Замена CSS свойст в активном документе!


dscoma
 Share

Question

Имеются некоторые элементы на странице, свойства которых возможно отредактировать лишь средствами JavaScript т.к. прямой доступ к ним ограничен!

Исходный вариант:

<div id="bbcode" style="position: absolute;"></div>

Требуемый вариант:

<div id="bbcode" style="position: static; float: left;"></div>

Пробовал изменить свойства так:

<script type="text/javascript">
<!--
var changeIt;
changeIt = bbcode.style.cssText;
if(typeof(changeIt) != 'string') {
changeIt = bbcode.getAttribute('style');
}
var changeIt = 'position: static; float: left';
bbcode.style.cssText = changeIt;
bbcode.setAttribute('style',changeIt);
//-->
</script>

Так тоже пробовал

<script type="text/javascript">
bbcode.style.setProperty("position", "static", "!important");
</script>

И так пробовал

<script type="text/javascript">
changeIt = document.getElementById('bbcode');
if(changeIt.getAttribute('style')){
changeIt.style.position = 'static';
changeIt.style.styleFloat = 'left';
}

</script>

Все эти варианты работают локально, а если подключить в сраницу, то нет результа!

Делать что-то с заменой идентификатора, нет смысла т.к. на нем висят иные свойства, а атрибут style имеет перед ним приемущество.

Надеюсь на вашу помощь, в особенности полезны будут советы с примененем регулярных выражений.

Edited by dscoma
Link to comment
Share on other sites

4 answers to this question

Recommended Posts

  • 0
Все эти варианты работают локально, а если подключить в сраницу, то нет результа!

Делать что-то с заменой идентификатора, нет смысла т.к. на нем висят иные свойства, а атрибут style имеет перед ним приемущество.

Ээээ. Я надеюсь, скрипт исполняется после того как загружено дерево нод?

Надеюсь на вашу помощь, в особенности полезны будут советы с примененем регулярных выражений.

А регулярные выражения зачем?

Link to comment
Share on other sites

  • 0

как вариант:

//Динамическая загрузка ява скриптов и цсс

function loadjscssfile(filename, filetype){
if (filetype=="js"){ //if filename is a external JavaScript file
var fileref=document.createElement('script')
fileref.setAttribute("type","text/javascript")
fileref.setAttribute("src", filename)
}
else if (filetype=="css"){ //if filename is an external CSS file
var fileref=document.createElement("link")
fileref.setAttribute("rel", "stylesheet")
fileref.setAttribute("type", "text/css")
fileref.setAttribute("href", filename)
}
if (typeof fileref!="undefined")
document.getElementsByTagName("head")[0].appendChild(fileref)
}

// в коде страниц используется так:
// loadjscssfile("myscript.js", "js")
// loadjscssfile("javascript.php", "js")
// loadjscssfile("mystyle.css", "css")



//Динамическая выгрузка ява скриптов и цсс

function removejscssfile(filename, filetype){
var targetelement=(filetype=="js")? "script" : (filetype=="css")? "link" : "none" //determine element type to create nodelist from
var targetattr=(filetype=="js")? "src" : (filetype=="css")? "href" : "none" //determine corresponding attribute to test for
var allsuspects=document.getElementsByTagName(targetelement)
for (var i=allsuspects.length; i>=0; i--){ //search backwards within nodelist for matching elements to remove
if (allsuspects[i] && allsuspects[i].getAttribute(targetattr)!=null && allsuspects[i].getAttribute(targetattr).indexOf(filename)!=-1)
allsuspects[i].parentNode.removeChild(allsuspects[i]) //remove element by calling parentNode.removeChild()
}
}

// в коде страниц используется так:
// removejscssfile("somescript.js", "js")
// removejscssfile("somestyle.css", "css")

Link to comment
Share on other sites

  • 0
Ээээ. Я надеюсь, скрипт исполняется после того как загружено дерево нод?

А регулярные выражения зачем?

да window.onload забыл.

А с помощью регулярных выражений я думал провести поиск по свойствам, с учетом регистра и сделать их помену, но все оказалось проще и эргономичней.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy