2014-01-15 19 views
0

我正在尋找一個複選框,當未選中時,將關閉.js文件中的某個功能。有人能幫我嗎?在HTML中的複選框關閉.js文件中的功能

popup.html HTML複選框:

content.js 關閉這個功能: VAR鳴叫=新的Array(); var tweetName = new Array();

function linkSnipe() { 

    for (var i = 0; i < 5; i++) { 
    tweetName[i] = document.getElementsByClassName("fullname js-action-profile-name show-popup-with-id")[0].innerHTML; 
    tweet[i] = document.getElementsByClassName("js-tweet-text")[i].innerHTML; 
    } 


    if (tweet[0].match(shoeName) == shoeName && tweet[0].match(filterer) != filterer && tweet[0].match(filter2) != filter2) { 
    if(checkon == "Tweets"){ 
     document.getElementsByClassName("twitter-timeline-link")[0].click(); 
     update(); 
    } 
    } 

    else if (tweet[1].match(shoeName) == shoeName && tweet[1].match(filterer) != filterer && tweet[1].match(filter2) != filter2) { 
    if(checkon == "Tweets"){ 
     document.getElementsByClassName("twitter-timeline-link")[1].click(); 
     update(); 
    } 
    } 

    else if (tweet[2].match(shoeName) == shoeName && tweet[2].match(filterer) != filterer && tweet[2].match(filter2) != filter2) { 
    if(checkon == "Tweets"){ 
     document.getElementsByClassName("twitter-timeline-link")[2].click(); 
     update(); 
    } 
    } 

    else if (tweet[3].match(shoeName) == shoeName && tweet[3].match(filterer) != filterer && tweet[3].match(filter2) != filter2) { 
    if(checkon == "Tweets"){ 
     document.getElementsByClassName("twitter-timeline-link")[3].click(); 
     update(); 
    } 
    } 

    else if (tweet[4].match(shoeName) == shoeName && tweet[4].match(filterer) != filterer && tweet[4].match(filter2) != filter2) { 
    if(checkon == "Tweets"){ 
     document.getElementsByClassName("twitter-timeline-link")[4].click(); 
     update(); 
    } 
    } 
    else if(checkon == "Tweets") { 
    location.reload(); 
    } 
} 
setTimeout("linkSnipe()", 250);  
} 
+0

您也可以將變量存儲在chrome中,並在運行函數時調用該變量。 – aug

回答

1

當複選框被選中,重新定義功能:

<input type=checkbox ..... onchange="doit()"> 

function doit() { 
    window.linkSnipe=function() {} 
} 

我用這個太:

function doit() { 
    window['linkSnipe']=function() {} 
} 

如果你想關閉該功能開啓和關閉由複選框:

<input type=checkbox ..... onchange="doit(this)"> 

var linkSnipeSave = linkSnipe; 

function doit(ck) { 
    if (ck.checked) 
    window['linkSnipe']=linkSnipeSave 
    else { 
    linkSnipeSave = linkSnipe;   //not sure if this line is needed...pls test 
    window['linkSnipe']=function() {} 
    } 
} 
0

You coul d只是有一個布爾變量,隨着你的複選框的狀態而變化。然後,您可以在函數調用周圍放置一個if語句,只有在複選框被選中時纔會觸發該語句。

http://jsfiddle.net/W5P8X/

//initialize some variables. 
bike_checked = false; 
car_checked = false; 

//get elements by their ID from html 
bike = document.getElementById("bike"); 
car = document.getElementById("car"); 

//add event listeners to the html elements we found above 
bike.addEventListener("click", toggle_bike, false); 
car.addEventListener("click", toggle_car, false); 

//toggle bike_checked variable on click 
function toggle_bike(){ 
    if(bike_checked == true) 
     bike_checked = false; 
    else 
     bike_checked=true; 
    current_state(); 
} 

//toggle car_checked variable on click 
function toggle_car(){ 
    if(car_checked == true) 
     car_checked = false; 
    else 
     car_checked=true; 

    current_state(); 
} 

//output current state. 
function current_state(){ 
    if(car_checked == true) 
     alert('Car checked'); 

    if(bike_checked == true) 
     alert('Bike checked'); 
} 

我只用javascript和jQuery的沒有回答,但你可能可以把它用jQuery多一點簡潔。

我希望這會有所幫助。