Не может добавить <сценарий> элемент

Dockerfile может иметь только одну CMD инструкцию, которая определяет команду, возникающую при запуске контейнера.

Попробуйте заменить следующие строки:

CMD chmod 777 -R /src/main/*
CMD chmod 777 -R /app/main/*

на:

RUN chmod 777 -R /src/main/*
RUN chmod 777 -R /app/main/*

В этом случае при построении изображения будут появляться команды chmod.

272
задан mekwall 25 June 2013 в 21:21
поделиться

7 ответов

Я видел проблемы, где некоторые браузеры не уважают некоторые изменения, когда Вы делаете их непосредственно (которым я означаю создавать HTML из текста как, Вы пробуете тегом script), но когда Вы делаете их со встроенными вещами команд, идут лучше. Попробуйте это:

var script = document.createElement( 'script' );
script.type = 'text/javascript';
script.src = url;
$("#someElement").append( script );

От: JSON для jQuery

258
ответ дан soumya 23 November 2019 в 02:14
поделиться

Что Вы имеете в виду "не работу"?

jQuery обнаруживает, что Вы пытаетесь создать элемент СЦЕНАРИЯ и автоматически выполните содержание элемента в глобальном контексте. Вы говорите мне, что это не работает на Вас? -

$('#someElement').append('<script>alert("WORKING");</script>');
<час>

Редактирование: Если Вы не видите элемент СЦЕНАРИЯ в DOM (в Firebug, например) после выполнения команды поэтому jQuery как я сказал, выполню код и затем удалю элемент СЦЕНАРИЯ - я полагаю, что элементы СЦЕНАРИЯ всегда добавляются к телу..., но так или иначе - размещение не имеет абсолютно никакого влияния на выполнение кода в этой ситуации.

20
ответ дан James 23 November 2019 в 02:14
поделиться

Я хочу сделать то же самое, но добавить тег скрипта в другой кадр!

var url = 'library.js'; 
var script = window.parent.frames[1].document.createElement('script' ); 
script.type = 'text/javascript'; 
script.src = url;
$('head',window.parent.frames[1].document).append(script);
3
ответ дан 23 November 2019 в 02:14
поделиться
<script>
    ...
    ...jQuery("<script></script>")...
    ...
</script>

в строковом литерале завершает весь скрипт, чтобы избежать этого "" .

3
ответ дан 23 November 2019 в 02:14
поделиться

Если вы отправляете внутренний опрос, который требует 100% участия сотрудников вашей компании, то лучшим маршрутом было бы просто иметь форму отслеживания ответчиков ID/Username/email и т.д. Каждые несколько дней или около того просто отправляйте приятное напоминание по электронной почте тем в вашей организации, чтобы завершить опрос... вы, вероятно, даже могли бы автоматизировать это.

-121--1155434-

Только классы Form и UserControl имеют дизайнеров, которые позволяют редактировать дочерние элементы управления во время разработки. Создание собственного дизайнера, чтобы дать SplitContainer такое же поведение, не совсем просто, прежде всего потому, что это так плохо документировано и трудно отлажено. Вам нужно изучить код рамки с Reflector, чтобы получить его правильно.

Устраните эту проблему, поместите SplitContainer в пользовательский элемент управления. Задайте для свойства «Док» значение «Заливка». Теперь это легко.

-121--3894422-

Можно динамически загрузить файл JavaScript с помощью функции jQuery getScript

$.getScript('http://www.whatever.com/shareprice/shareprice.js', function() {
  Display.sharePrice();
});

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

23
ответ дан 23 November 2019 в 02:14
поделиться

Это работает:

$('body').append($("<script>alert('Hi!');<\/script>")[0]);

Похоже, что jQuery делает что-то умное со сценариями, поэтому вам нужно добавить элемент html, а не объект jQuery.

17
ответ дан 23 November 2019 в 02:14
поделиться

Хорошие новости:

Это работает на 100%.

Просто добавьте что-нибудь внутри тега скрипта, например alert('вуаля!');. Возможно, вы захотите задать правильный вопрос : «Почему я не увидел его в DOM?».

Карл Сведберг дал хорошее пояснение к комментарию посетителя на сайте jQuery API. Я не хочу повторять все его слова, вы можете прочитать прямо там здесь (мне было трудно ориентироваться там по комментариям).

Все методы вставки jQuery используют внутреннюю функцию domManip для очищать/обрабатывать элементы до и после их вставки в DOM. Одна из вещей domManip функция вытаскивает любой скрипт элементы, которые будут вставлены и запущены их через "процедуру evalScript" а не вводить их с остальными фрагмента DOM. Он вставляет скрипты отдельно, оценивает их, а затем удаляет их из DOM.

Я считаю, что одна из причин, по которой jQuery делает это, чтобы избежать «Разрешение Denied», которые могут возникать в Internet Explorer при вставке сценарии при определенных обстоятельствах.Он также избегает неоднократно вставка/оценка одного и того же скрипта (что потенциально может вызвать проблемы), если он находится в содержащем элемент, который вы вставляете и затем перемещаясь по DOM.

Следующее, я суммирую плохие новости, используя функцию .append() для добавления скрипта.


Плохая новость заключается в том, что…

Вы не можете отлаживать свой код.

Я не шучу, даже если вы добавите ключевое слово debugger; между строкой, которую хотите установить в качестве точки останова, вы в конечном итоге получите только стек вызовов объекта, не видя точки останова. в исходном коде (не говоря уже о том, что это ключевое слово работает только в браузере webkit, все остальные основные браузеры, похоже, опускают это ключевое слово) .

Если вы полностью понимаете, что делает ваш код, то это будет незначительным недостатком. Но если вы этого не сделаете, вы в конечном итоге будете добавлять повсюду ключевое слово debugger; просто для того, чтобы выяснить, что не так с вашим (или моим) кодом. В любом случае, есть альтернатива, не забывайте, что javascript может изначально манипулировать HTML DOM.


Обходной путь.

Используйте javascript (не jQuery) для управления HTML DOM.

Если вы не хотите терять возможности отладки, вы можете использовать собственный HTML DOM для javascript. Рассмотрим этот пример:

var script   = document.createElement("script");
script.type  = "text/javascript";
script.src   = "path/to/your/javascript.js";    // use this for linked script
script.text  = "alert('voila!');"               // use this for inline script
document.body.appendChild(script);

Вот оно, совсем как в старые времена, не так ли. И не забудьте навести порядок в DOM или в памяти для всех объектов, на которые есть ссылки и которые больше не нужны, чтобы предотвратить утечку памяти.Вы можете использовать этот код для исправления ситуации:

document.body.removechild(document.body.lastChild);
delete UnusedReferencedObjects; // replace UnusedReferencedObject with any object you created in the script you load.

Недостаток этого обходного пути заключается в том, что вы можете случайно добавить повторяющийся скрипт, а это плохо. Отсюда вы можете немного имитировать функцию .append(), добавив проверку объекта перед добавлением и удалив скрипт из DOM сразу после его добавления. Рассмотрим следующий пример:

function AddScript(url, object){
    if (object != null){
        // add script
        var script   = document.createElement("script");
        script.type  = "text/javascript";
        script.src   = "path/to/your/javascript.js";
        document.body.appendChild(script);

        // remove from the dom
        document.body.removeChild(document.body.lastChild);
        return true;
    } else {
        return false;
    };
};

function DeleteObject(UnusedReferencedObjects) {
    delete UnusedReferencedObjects;
}

Таким образом, вы можете добавить сценарий с возможностью отладки, не допуская дублирования сценария. Это всего лишь прототип, вы можете расширить его до того, что вы хотите. Я использую этот подход и вполне доволен этим. Разумеется, я никогда не буду использовать jQuery .append() для добавления скрипта.

349
ответ дан 23 November 2019 в 02:14
поделиться
Другие вопросы по тегам:

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