2013-11-23 6 views
1

Я довольно новыми для JavaScript поэтому, пожалуйста, идти легко на меня,с помощью JavaScript для замены OnPage яваскрипта

У меня есть этот код на веб-странице:

<script type="text/javascript"> bb1 = "oldcode"; bb2 = "morecodehgere"; bb3 = 160000;</script> 

Я хочу, чтобы заменить 1% от всех страница загружается oldcode в newcode

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

window.onload = replaceScript; 
function replaceScript() { 
var randomNumber = Math.floor(Math.random()*101); 
var toReplace = 'oldcode'; 
var replaceWith ='newcode'; 
if randomNumber == 1 { 
document.body.innerHTML = document.body.innerHTML.replace(/toReplace/g, replaceWith); 
} 
} 

Это текущий код, который у меня есть, но он не работает.

Является ли javascript удачным способом для достижения того, что я ищу? Если да, то что это лучший способ сделать это?

+0

Не могли бы вы объяснить мне, почему ваша основная логика основана на случайном числе? –

+0

@tkr_in Я пытаюсь понять вопрос, но я думаю, что OP хочет запустить этот странный сценарий на 1 из 100 загрузок страниц. – Moob

+0

@Moob да, это правильно. – user3024398

ответ

0

Регулярное выражение буквальное:

/toReplace/g 

создаст объект регулярного выражения, которое соответствует строке «toReplace». Если вы хотите создать регулярное выражение, чтобы соответствовать значению (строка) переменной toReplace, вы должны использовать конструктор RegExp:

var re = new RegExp(toReplace, 'g'); 

Это не очень хорошая идея, чтобы заменить innerHTML тела с копией само по себе. Свойство innerHTML не обязательно отражает все нюансы DOM и не включает такие вещи, как динамически добавленные слушатели. Он также зависит от браузера и браузера.

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

Смежные вопросы