开发者

Bookmarklet that adds a JavaScript function

I am currently trying to make a bookmarklet that adds, among other things, a DIV element to the page.

I'm doing this by adding the HTML code to body.innerHTML and that works fine. On this DIV element is a button that should allow to hide the added DIV. I therefore tried to add via JavaScript a JavaScript function to the innerHTML called function hideDiv().

The new JavaScript is added to the body and it looks fine. But it doesn't work.

Short example:

javascript:var b = document.body.InnerHTML; b=b+'<input type="button" onclick="javascript:alert("hello")"/>'; document.body.innerHTML = b;

This bookmarklet should add a button that shows an alert if its clicked. It adds the button but nothing happens when clicking on it.

Is this a general issue? Can JavaScript add (working)开发者_运维百科 JavaScript to a page?


I think you should set an id and then just add the function to the element. Like this:

javascript:var b = document.body.InnerHTML; b=b+'<input type="button" id="test"/>'; document.body.innerHTML = b; document.getElementById('test').onclick = function () { alert('hi')}


The javascript: prefix is only used in href attributes (or action for forms). It is NOT used in onclick or any other events. Remove the javascript: and your code should work fine.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜