0

我正在编写一个通过单击按钮保存当前 URL 的程序(它用于 chrome 扩展,我想让 pc 构建器保存其部件的 URL 而无需制作一百万个书签)

HTML:

<!DOCTYPE html>
<html>


<body>

<script type="javascript" src="buttonsact.js"> 


</script>



<button type="button" onclick="changeCPU()">Change CPU</button><h5 id=CPU>Not Selected Yet</h5>
<button type="button" onclick="changeMOTH()">Change Motherboard</button><h5 id=MOTH   id=part>Not Selected Yet</h5>
<button type="button" onclick="changeHARD()">Change Hard Drive</button><h5 id=HARD>Not Selected Yet</h5>
<button type="button" onclick="changeRAM()">Change RAM</button><h5 id=RAM>Not Selected Yet</h5>
<button type="button" onclick="changeGPU()">Change GPU</button><h5 id=GPU>Not Selected Yet</h5>
<button type="button" onclick="changeCASE()">Change Case</button><h5 id=CASE>Not Selected Yet</h5>
<button type="button" onclick="changePOWER()">Change Power Unit</button><h5 id=POWER>Not Selected Yet</h5>
<button type="button" onclick="changeMON()">Change Monitor</button><h5 id=MON>Not Selected Yet</h5>
<button type="button" onclick="reset()">!!!!RESET!!!!</button>



</body>
</html>

Javascript:


function getpage()
{
    chrome.tabs.getSelected(null,function(tab) {
    var tablink = tab.url;
})
}

function changeCPU()
{
x=document.getElementById("CPU");  // Find the element
x.innerHTML=tablink;    // Change the content
}

function changeMOTH()
{
x=document.getElementById("MOTH");  // Find the element
x.innerHTML=tablink;    // Change the content
}

function changeRAM()
{
x=document.getElementById("RAM");  // Find the element
x.innerHTML=tablink;    // Change the content
}

function changeHARD()
{
x=document.getElementById("HARD");  // Find the element
x.innerHTML=tablink;    // Change the content
}

function changeGPU()
{
x=document.getElementById("GPU");  // Find the element
x.innerHTML=tablink;    // Change the content
}

function changeCASE()
{
x=document.getElementById("CASE");  // Find the element
x.innerHTML=tablink;    // Change the content
}

function changePOWER()
{
x=document.getElementById("POWER");  // Find the element
x.innerHTML=tablink;    // Change the content
}

function changeMON()
{
x=document.getElementById("MON");  // Find the element
x.innerHTML=tablink;    // Change the content
}


function reset()
{
a=document.getElementById("CPU");  // Find the element
b=document.getElementById("MOTH");
c=document.getElementById("HARD");
d=document.getElementById("RAM");
e=document.getElementById("GPU");
f=document.getElementById("CASE");
g=document.getElementById("POWER");
h=document.getElementById("MON");

a.innerHTML="Not Selected Yet";    // Change the content
b.innerHTML="Not Selected Yet";
c.innerHTML="Not Selected Yet";
d.innerHTML="Not Selected Yet";
e.innerHTML="Not Selected Yet";
f.innerHTML="Not Selected Yet";
g.innerHTML="Not Selected Yet";
h.innerHTML="Not Selected Yet";
}

window.onload = getpage()

我对其进行了测试,看看是否只是我的代码通过更改来捕获 URL: a.innerHTML="Not Selected Yet"; // Change the content

对此 a.innerHTML="Not Selected Yet Yet"; // Change the content

并点击重置。这仍然没有奏效。我想一些关于我的程序如何调用该函数的事情。我最初确实让它工作,但我不确定我是如何改变它的。谢谢你!

4

3 回答 3

0

问题似乎是变量 tablink 超出了所有更改功能的范围。尝试在 getpage 函数之外定义它,然后在里面分配值。

于 2013-10-09T22:39:54.767 回答
0

var tablinkinsidegetpage()函数仅限于该函数的范围,因此在设置 innerHTML 值时未定义。var通过删除关键字将其更改为全局或在getpage()函数外部定义它。

于 2013-10-09T22:41:34.790 回答
0

您不能onclick在属于扩展的页面中指定具有该属性的事件处理程序。您需要使用 javascript (withaddEventListener或类似) 绑定您的事件。

于 2013-10-09T23:17:24.470 回答