Как манипулировать выбором текста неудара в лунку field в YouTube?

Я использую Userscript, чтобы менять некую функциональность YouTube и пробую блокировать "select all" в text field ссылки, чтобы иметь, там, где он помещает адрес видео:

text field en YT

мотив состоит в том, что я не нуждаюсь https:// и я заставляю этот копировать / прикреплять часто

Одинокий text field появляется в DOM, щелкнув в кнопку Share. Я смог снять свойство focus с рукописным шрифтом внизу, но "select all" продолжи быть активным:

// Botón "Share"
$('button[data-trigger-for="action-panel-share"]').on('click', function() {      
    window.setTimeout (function(){ 
        // Input field con la URL - no hay onclick, pero por si acaso
        $("input[name=share_url]").prop('onclick',null).prop('focus',null); 
    },300);
});

Я попробовал искать из-за share_url в Очищающем языке сценариев JavaScript Firefox, но я не нашел свойство, которое я должен снимать, чтобы получать желанное поведение...

Как альтернативное решение, я только что попробовал заменять контент input, но автоматически вернись в Вашу первоначальную стоимость (!!!).

var nueva_url = $("input[name=share_url]").val();
nueva_url = nueva_url.replace('https://','');
$("input[name=share_url]").val(nueva_url);

PS: Страница YT не приходит с jQuery по умолчанию, но чтобы делать доказательства, возможно делать инъекцию этому через консоль используя следующий рукописный шрифт:

var head = document.getElementsByTagName("head")[0];
var script = document.createElement("script");
script.src = "//ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js";
head.appendChild(script);

12
задан 23.05.2017, 15:39
2 ответа

Замечает: SГ©, что этот ответ не соответствует прямым способом в твой вопрос, но sГ - это альтернатива, которая добивается желанной цели , определенного в комментариях : "cГіmo копировать одну versiГіn измененная унифицированного указателя ресурса ящика текста".

PodrГ-Схвати автоматизировать этот процесс без необходимости беспокоиться о событиях ящика текста о том, что он содержит унифицированный указатель ресурса (и даже не беспокоясь о поле, потому что унифицированный указатель ресурса отрезает tambiГ©n, может находиться в этикетке link с rel="shortlink").

Помимо нее opciГіn использования одного prompt, о котором ты упоминаешь в комментарии, tambiГ©n podrГ-схвати использовать API пюпитра в виде дощечки с зажимом (clipboard) языка сценариев JavaScript, если ты используешь современный браузер (Chrome 42 +, IE10 +, Firefox 41 +, Производит 29 +, но не Safari) cГіmo, он определяется в этом другом вопросе .

cГіdigo в jQuery serГ - в простой:

$("button[data-trigger-for='action-panel-share']").on("click", function() { 
    var $temp = $("<input>")
    $("body").append($temp);
    $temp.val($("link[rel='shortlink']").attr("href").replace("https://", "")).select();
    document.execCommand("copy");
    $temp.remove();
});

Или альтернативно без jQuery:

var s = document.querySelector("button[data-trigger-for='action-panel-share']");
s.onclick = function() { 
   var aux = document.createElement("input");
   aux.setAttribute("value", document.querySelector("link[rel='shortlink']").href.replace("https://", ""));
   document.body.appendChild(aux);
   aux.select();
   document.execCommand("copy");
   document.body.removeChild(aux);
}

Сейчас, уже ты не должен беспокоиться о различных событиях, ассоциируемых с ящиком текста, и получаешь ту же цель с только click.

4
ответ дан 24.11.2019, 15:08
  • 1
    Гениальный soluci и # 243; n, я верю в то, что hab и # 237; в ca и # 237; do в Проблеме XY c и # 243; mo хорошо ты указал в твоем комментарии на вопрос. – brasofilo 08.12.2015, 20:54

Ты можешь устранять это с одним off .

$(document).ready(function() {
  $("input:text").focus(function() {
    $(this).select();
  });
  $("#unbinder").click(function() {
    $("input:text").off();
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input value="hola mundo!" />
<button id="unbinder">click para quitar el select all</button>
6
ответ дан 24.11.2019, 15:08
  • 1
    Оно не функционировало all и # 237; в YouTube...:/Я Думаю, что проблема состоит в том, чтобы открывать qu и # 233; используй YT, чтобы управлять об этом поведении... – brasofilo 03.12.2015, 18:31
  • 2
    Я считаю блокированным youtube, но думаю, что событие не est и # 225; в неударе в лунку соответствующим образом. – Ruslan López 03.12.2015, 18:35
  • 3
    Кажется, что то, что использует YT, является многим м и # 225; s могущественный, что jQuery или. Или Я обновил вопрос с тестом, который я только что сделал, и есть alg и # 250; n Listener действуя all и # 237; что не позволяет менять стоимость input... – brasofilo 03.12.2015, 19:54
  • 4
    ты проверил, если он имеет requirejs? Эти те и #250; nicos компоненты, которые я увидел, что, изменив им Вашу стоимость, они возвращаются в оригинал – Ruslan López 03.12.2015, 20:01
  • 5
    я это не вижу, но .js кажется довольно obfuscated ... – brasofilo 03.12.2015, 20:13