После открытия расширения chrome страница браузера становится незаметной? [Дубликат]

я предлагаю вам использовать phpmyadmin.

вам нужно выполнить шаги:

  1. открыть phpmyadmin
  2. перейти в раздел администратора
  3. ударить по учетной записи пользователя
  4. положить имя пользователя и пароль
  5. установить привилегии
  6. нажать кнопку [go]

]

, которые все видят в действии на youtube [ нажмите здесь ]

, если вы хотите узнать больше о phpMyadmin , идите с официальным

, но если есть какая-либо особая причина, чтобы сделать это с php, здесь приведена оценка sql

CREATE USER 'tesrytss'@'%'//user name IDENTIFIED VIA mysql_native_password USING '***';.//set pass GRANT SELECT, INSERT, UPDATE, DELETE, FILE ON *.* TO 'tesrytss'@'%' // previlages and username and location REQUIRE NONE WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0; //other requerment

72
задан Bergi 4 October 2016 в 19:19
поделиться

11 ответов

К сожалению, назначение innerHTML вызывает уничтожение всех дочерних элементов, даже если вы пытаетесь добавить. Если вы хотите сохранить дочерние узлы (и их обработчики событий), вам нужно будет использовать функции DOM :

function start() {
    var myspan = document.getElementById("myspan");
    myspan.onclick = function() { alert ("hi"); };

    var mydiv = document.getElementById("mydiv");
    mydiv.appendChild(document.createTextNode("bar"));
}

Изменить: решение Боба из комментариев. Отправьте свой ответ, Боб! Получите кредит на это. : -)

function start() {
    var myspan = document.getElementById("myspan");
    myspan.onclick = function() { alert ("hi"); };

    var mydiv = document.getElementById("mydiv");
    var newcontent = document.createElement('div');
    newcontent.innerHTML = "bar";

    while (newcontent.firstChild) {
        mydiv.appendChild(newcontent.firstChild);
    }
}
97
ответ дан Ben Blank 15 August 2018 в 19:33
поделиться
  • 1
    Есть ли замена, которая может добавить произвольный кадр HTML? – mike 27 February 2009 в 18:55
  • 2
    newcontent = document.createElement ('div'); newcontent.innerHTML = произвольный_blob; while (newcontent.firstChild) mydiv.appendChild (newcontent.firstChild); – bobince 27 February 2009 в 19:13
  • 3
    Ницца, Боб! Если вы опубликуете это как хорошо отформатированный ответ, я его выберу. – mike 27 February 2009 в 19:17
  • 4
    @bobince. Я обновил свой ответ с помощью вашей техники, так как вы еще не разместили ее самостоятельно. Если вы создадите свой собственный ответ, продолжайте и откатывайтесь назад. :-) – Ben Blank 27 February 2009 в 21:25
  • 5
    О, еще одна вещь, вам понадобятся «var myspan», «var newcontent» и т. Д., Чтобы избежать случайного распространения глобалов. – bobince 27 February 2009 в 22:24

Как небольшой (но связанный) asside, если вы используете javascript-библиотеку, такую ​​как jquery (v1.3), чтобы выполнять манипуляции с dom, вы можете использовать живые события, в которых вы настраиваете обработчик наподобие:

 $("#myspan").live("click", function(){
  alert('hi');
});

, и он будет применяться к этому селектору в любое время при любых манипуляциях с jquery. Для живых событий см.: docs.jquery.com/events/live для манипуляции jquery см.: docs.jquery.com/manipulation

3
ответ дан Cargowire 15 August 2018 в 19:33
поделиться

Я создал свою разметку для вставки в виде строки, поскольку она меньше кода и ее легче читать, чем работать с файлом fancy dom.

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

var html = '<div>';
html += 'Hello div!';
html += '</div>';

var tempElement = document.createElement('div');
tempElement.innerHTML = html;
document.getElementsByTagName('body')[0].appendChild(tempElement.firstChild);
2
ответ дан Eneroth3 15 August 2018 в 19:33
поделиться

Теперь это 2012 год, и у jQuery есть функции добавления и добавления, которые делают именно это, добавляют контент, не влияя на текущий контент. Очень полезно.

4
ответ дан rocketsarefast 15 August 2018 в 19:33
поделиться
  • 1
    .insertAdjacentHTML существует с IE4 – Esailija 23 July 2012 в 14:47
  • 2
    @Esailija, которая не работает в Firefox. – Tynach 29 June 2014 в 23:52
  • 3
    @Tynach, да, это их сайт JavaScript, который документирует его наилучшим образом: developer.mozilla.org/en-US/docs/Web/API/Element/… – Jordon Bedwell 25 November 2016 в 15:37
  • 4
    @JordonBedwell, я честно понятия не имею, почему я сказал, что я сделал раньше. Ты на 100% прав. Я чувствую, что в то время, когда я вкратце заглянул в нее и не смог ее найти, но ... Честно говоря, у меня нет оправдания. Esailija даже ссылки на эту страницу. – Tynach 9 September 2017 в 03:15

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

var html_to_insert = "<p>New paragraph</p>";

// with .innerHTML, destroys event listeners
document.getElementById('mydiv').innerHTML += html_to_insert;

// with .insertAdjacentHTML, preserves event listeners
document.getElementById('mydiv').insertAdjacentHTML('beforeend', html_to_insert);

Аргумент 'beforeend' указывает, где в элементе для вставки содержимого HTML. Опции: 'beforebegin', 'afterbegin', 'beforeend' и 'afterend'. Их соответствующие местоположения:

<!-- beforebegin -->
<div id="mydiv">
  <!-- afterbegin -->
  <p>Existing content in #mydiv</p>
  <!-- beforeend -->
</div>
<!-- afterend -->
30
ответ дан user183106 15 August 2018 в 19:33
поделиться

Существует другая альтернатива: использование setAttribute вместо добавления прослушивателя событий. Например:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Demo innerHTML and event listeners</title>
<style>
    div {
        border: 1px solid black;
        padding: 10px;
    }
</style>
</head>
<body>
    <div>
        <span>Click here.</span>
    </div>
    <script>
        document.querySelector('span').setAttribute("onclick","alert('Hi.')");
        document.querySelector('div').innerHTML += ' Added text.';
    </script>
</body>
</html>

1
ответ дан Frank Conijn 15 August 2018 в 19:33
поделиться

Вы можете сделать это следующим образом:

var anchors = document.getElementsByTagName('a'); 
var index_a = 0;
var uls = document.getElementsByTagName('UL'); 
window.onload=function()          {alert(anchors.length);};
for(var i=0 ; i<uls.length;  i++)
{
    lis = uls[i].getElementsByTagName('LI');
    for(var j=0 ;j<lis.length;j++)
    {
        var first = lis[j].innerHTML; 
        string = "<img src=\"http://g.etfv.co/" +  anchors[index_a++] + 
            "\"  width=\"32\" 
        height=\"32\" />   " + first;
        lis[j].innerHTML = string;
    }
}
0
ответ дан Gorgsenegger 15 August 2018 в 19:33
поделиться

something.innerHTML + = 'добавить все, что вам нужно,

, это сработало для меня. Я добавил кнопку для ввода текста, используя это решение

1
ответ дан KawaiKx 15 August 2018 в 19:33
поделиться

Я ленивый программист. Я не использую DOM, потому что это похоже на дополнительную типизацию. Для меня, чем меньше код, тем лучше. Вот как я добавил бы «bar» без замены «foo»:

function start(){
var innermyspan = document.getElementById("myspan").innerHTML;
document.getElementById("myspan").innerHTML=innermyspan+"bar";
}
-3
ответ дан lucious 15 August 2018 в 19:33
поделиться
  • 1
    Этот вопрос спрашивает, как это сделать, не теряя обработчики событий, поэтому ваш ответ не имеет значения, и, кстати, это то, что + = делает, что намного короче – wlf 23 November 2012 в 12:45
  • 2
    Смешно, что в этом совершенно неправильном ответе, который цитирует, избегая лишней типизации как оправдания, примерно половина кода является избыточной. – JLRishe 20 October 2017 в 19:17

Потеря обработчиков событий, IMO, ошибка в том, как Javascript обрабатывает DOM. Чтобы избежать такого поведения, вы можете добавить следующее:

function start () {
  myspan = document.getElementById("myspan");
  myspan.onclick = function() { alert ("hi"); };

  mydiv = document.getElementById("mydiv");
  clickHandler = mydiv.onclick;  // add
  mydiv.innerHTML += "bar";
  mydiv.onclick = clickHandler;  // add
}
1
ответ дан Yes - that Jake. 15 August 2018 в 19:33
поделиться
  • 1
    Я не считаю это ошибкой. Замена элемента означает, что вы полностью его замените. Он не должен наследовать то, что было раньше. – Diodeus - James MacFarlane 27 February 2009 в 18:51
  • 2
    Но я не хочу заменять элемент; Я просто хочу добавить новые родителям. – mike 27 February 2009 в 18:53
  • 3
    Если бы вы заменили элемент, я бы согласился, @Diodeus. Это не theinnerHTML, у которого есть обработчик событий, но родитель .innerHtml. – Yes - that Jake. 27 February 2009 в 18:57
  • 4
    Владелец innerHTML не теряет обработчиков, когда изменяется его innerHTML, только что-либо в его содержимом. И JavaScript не знает, что вы только добавляете новых детей, так как «x.innerHTML + = y» является только синтаксическим сахаром для операции с строкой «x.innerHTML = x.innerHTML + y». – bobince 27 February 2009 в 19:16
  • 5
    Вам не нужно повторно прикреплять mydiv.onclick. Только параметр onclick для внутреннего диапазона переопределяется innerHTML +=. – Crescent Fresh 27 February 2009 в 21:35
0
ответ дан Anoop Anson 29 October 2018 в 02:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: