0

コンテンツ スクリプトを使用してポップアップ Div を追加しています。その DIV を閉じるボタンを追加し、その目的のために関数popClose()のonClickイベントを呼び出しましたが、関数は undefined になります。どうすれば実現できますか?

私のコンテンツスクリプトコードは以下のとおりです。

var currentURL = document.location.href;
var body = document.getElementsByTagName("body")[0];
body.setAttribute("style", "background-color:red");

//get Top BlueBar Reference
var blueBar = document.getElementById("blueBar");
var blueBarHtml = blueBar.innerHTML;

//popUp Div for Options

var popUpDiv = "<div onclick='closepop();' class='popUpDiv'><div class=close>X</div></div>";
blueBar.innerHTML = popUpDiv+blueBarHtml;

//get page Nav ID
var tinyMan = chrome.extension.getURL("tinyman.png");
var pageNav = document.getElementById("pageNav");

var red = chrome.extension.getURL("red.png");
var yellow = chrome.extension.getURL("yellow.png");
var green = chrome.extension.getURL("green.png");
var blue = chrome.extension.getURL("blue.png");

var pageNavHtml = pageNav.innerHTML;
var liHTML = '<li id="Extra" class="navItem topNavLink middleLink">';
liHTML+='<a><img src="'+tinyMan+'" border="0" style="margin-bottom: 4px; display: inline-block;">';
liHTML+="<a>"
liHTML+='<div class="menuPulldown" style="display:block;"></div>'
liHTML+='</a>';  
liHTML+='</li>';
//set new HTML

pageNav.innerHTML = liHTML+pageNavHtml;

function closepop()
{
    alert("jj");
}
4

1 に答える 1

1

さて、関数の内容を DOM の head に追加して呼び出しました。

var head = document.getElementsByTagName("head")[0];
fn = "function closepop(){alert('jj');}";

var script = document.createElement('script');
script.setAttribute("type", "application/javascript");
script.textContent = fn;
head.appendChild(script);

それを行うためのよりクリーンな方法はありますか?

于 2013-07-29T20:26:04.753 に答える