2013-06-17 2 views
2

Я ищу способ заполнить таблицу массивов по javascript-коду, а затем удалить этот код, чтобы пользователи не могли скопировать таблицу напрямую (или, по крайней мере, сделать ее сложнее) со страницы как HTML.Код javascript удаляется после запуска

<script> 
    .... 
</script> 

Как удалить скрипт java со страницы после завершения миссии?

благодаря

+0

Я не уверен, вы можете удалить код во время его выполнения. – LuigiEdlCarno

+0

Почему вы хотите удалить его? Вы можете отменить событие/функцию, когда вам это не понадобится. – Paritosh

+0

Удаление javascript не удалит таблицу. –

ответ

2

Я не вижу смысла в удалении JavaScript, но это было бы возможно. Дайте элементу сценария идентификатор, чтобы его было легче выбрать. Затем поместите код, который будет обрабатывать удаление в отдельном элементе script.

Учитывая, что код, который вы wan't удалить не асинхронный, то, как это будет делать:

<script id="foo"> 
    // Do your stuff here, create the table or whatever necessary 
</script> 

<script> 
(function() { 
    var node = document.getElementById("foo"); 
    if (node.parentNode) { 
     node.parentNode.removeChild(node); 
    } 
})(); 
</script> 

Demo

Update:

Как Juhana указывает в комментариях это приведет к удалению элемента сценария из DOM, но элемент сценария все равно будет виден, если вы посмотрите на фактический источник страницы.

+2

Как упоминалось в комментариях, это «работает», но имеет практически нулевой эффект. JavaScript уже запущен, а «источник просмотра» браузера показывает * оригинал * HTML, а не текущий DOM. – JJJ

+0

большое спасибо. это то, что я искал. он работает против firebug. но все же отображается ctrl + U. теперь я сомневаюсь, что теоретически возможно то, что я ищу, или нет. – gerrnar

+0

@gerrnar Это не так. – JJJ

-1

Может быть, вы можете сделать это трудно отключив копирования и функции вставки в веб-страницы:

<script type="text/JavaScript"> 
function killCopy(e){ 
return false 
} 
function reEnable(){ 
return true 
} 
document.onselectstart=new Function ("return false") 
if (window.sidebar){ 
document.onmousedown=killCopy 
document.onclick=reEnable 
} 
</script> 

см http://www.boogiejack.com/no_copy_paste.html

Но все пользователи могут получить его, потому что у них уже есть копия html на их локальной машине

+0

почему голос? Это может по крайней мере затруднить пользователям. – sinhayash

+0

спасибо, но обсуждение здесь о захвате кода из источника не со страницы (я не был тем, кто дает downvote) – gerrnar

1

Вы можете удалить элемент сценария или сделать что-нибудь еще, но пользователь все равно может получить таблицу в режиме отладки. Есть несколько способов зашифровать исходный код, попробуйте: http://jsobfuscate.com/

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