Ant*_*ine 0 javascript bookmarklet
我有这个小书签,它遵循本主题中的建议:
javascript: (function () {
var jsCode = document.createElement('script');
jsCode.setAttribute('src', 'http://path/to/external/file.js');
document.body.appendChild(jsCode);
}());
Run Code Online (Sandbox Code Playgroud)
我的问题是,如何为服务器脚本提供一些参数(例如页面标题)?服务器脚本如下(到目前为止只是一些 PoC):
(function(message){
alert(message + " " + Math.random()*100);
})();
Run Code Online (Sandbox Code Playgroud)
要将参数传递给服务器端脚本,请扩展查询字符串:
jsCode.setAttribute('src', 'http://path/to/external/file.js?parameter=' + document.title);
Run Code Online (Sandbox Code Playgroud)
如果您打算将参数传递给返回的脚本,请将onload处理程序添加到脚本元素:
javascript:(function() {
var jsCode = document.createElement('script');
var parameter = document.title; //Define parameter
jsCode.onload = function() {
// If the function exists, use:
if(typeof special_func == "function") special_func(parameter);
};
jsCode.setAttribute('src', 'http://path/to/external/file.js');
document.body.appendChild(jsCode);
})();
Run Code Online (Sandbox Code Playgroud)
响应脚本(file.js):
function special_func(param){
alert(param);
}
Run Code Online (Sandbox Code Playgroud)
如果您想将(多个)变量传递给响应脚本,请使用以下代码:
javascript:(function() {
var jsCode = document.createElement('script');
var params = ["test", document.title]; //Define parameter(s)
var thisObject = {}; // `this` inside the callback function will point to
// the object as defined here.
jsCode.onload = function() {
// If the function exists, call it:
if (typeof special_func == "function") {
special_func.apply(thisObject, params);
}
};
jsCode.setAttribute('src', 'http://path/to/external/file.js');
document.body.appendChild(jsCode);
})();
Run Code Online (Sandbox Code Playgroud)
http://path/to/external/file.js:
// Declare / Define special_func
var special_func = (function(){
var local_variable = "password";
var another_local_title = "Expected title";
//Return a function, which will be stored in the `special_func` variable
return function(string, title){ //Public function
if (title == another_local_title) return local_variable;
}
})();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1311 次 |
| 最近记录: |