Javascript 如何在点击激活的wordpress页面标题中包含js文件

Javascript 如何在点击激活的wordpress页面标题中包含js文件,javascript,wordpress,Javascript,Wordpress,我正试图使用wordpress来建立一个整合谷歌地图的网站。我正在用地图做一些叠加,并使用google开发者API和Python来制作适当的javascript。我已经成功地编写了完成此任务所需的js文件和Python 我的网站是建立在Worpress,我想添加一个网页(而不是主页)有n个链接,每一个将填充一个框与相应的地图。我可以处理布局和设计问题,但我不知道如何: a) 将javascript作为 b) 在单击链接时被调用,从而填充该映射而不调用新页面 也就是说,javascript是巨大的

我正试图使用wordpress来建立一个整合谷歌地图的网站。我正在用地图做一些叠加,并使用google开发者API和Python来制作适当的javascript。我已经成功地编写了完成此任务所需的js文件和Python

我的网站是建立在Worpress,我想添加一个网页(而不是主页)有n个链接,每一个将填充一个框与相应的地图。我可以处理布局和设计问题,但我不知道如何:

a) 将javascript作为

b) 在单击链接时被调用,从而填充该映射而不调用新页面

也就是说,javascript是巨大的,因为它可能包含数千个lat/lon点。因此,将其中的n个写入标头是不合理的。我只想在单击链接时从filename.js调用它

有一个插件允许我在标题中包含任何我想要的内容。因此,如果我能找到在目录树中放置*.js文件(或txt文件)的位置,以及如何在单击时激活相应的文件,我应该会很好。谢谢


这种方式有助于点击显示,但每个人的解决方案都是制作一张地图。我不能那样做。我正在叠加大量的数据

这里有一个方法可以让你做到这一点。(跳到脚本的“入门”部分。)

为简洁起见,我在一个“文件”中包含了一组脚本,但您需要将它们分解为单个文件

您可能还需要在jsbin中尝试html和js,因此b/c可能允许也可能不允许动态加载js

(函数(未定义){
/**
*@author(@colecm)
*@method将集合转换为数组
*@param{object}collection-NodeList、HTMLCollection等应具有“item”方法和/或“length”属性
*/
ToArray=collection=>Array.prototype.slice.call(collection);
/** \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/ **/
观察者=(函数(未定义){
/**
*酒吧间酒吧
*/
"严格使用",;
var subUid=-1;
返回{
主题:{},
订阅:函数(主题,函数){
/**
*@param{string}主题
*@param{function}func
*@returns{string}-一个标记,如'3'
*@example Observer.subscribe('any-valid-string',函数(名称,resp){
控制台日志(分别为道具);
});
*/
如果(!Observer.topics[主题]){
Observer.topics[主题]=[];
}
变量标记=(++subUid).toString();
Observer.topics[topic].push({
令牌:令牌,
func:func
});
返回令牌;
},
发布:函数发布(主题,参数){
/**
*@param{string}主题
*@param{object}args
*@如果主题有效,则返回{boolean}-true,否则返回false
*@example Observer.publish('any-valid-string'{
道具:“这是一个测试”
});
*/
如果(!Observer.topics[主题]){
返回false;
}
setTimeout(函数(){
var订阅者=观察者。主题[主题],
len=订阅者?订阅者。长度:0;
而(len--){
订阅服务器[len].func(主题,参数);
}
}, 0);
返回true;
},
取消订阅:功能取消订阅(令牌){
/**
*@param{string}标记-应从原始订阅中保存值
*@example Observer.unsubscribe('2');
*@example Observer.unsubscribe(member);-其中member是Observer.subscribe()返回的值;
*/
var m,
forEachTopic=函数(i){
if(Observer.topics[m][i].token==token){
课题[m].剪接(i,1);
返回令牌;
}
};
for(观察者主题中的m){
if(Observer.topics.hasOwnProperty(m)){
Observer.topics[m].forEach(forEachTopic);
}
}
返回false;
}
};
}(未定义);
/** \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/ **/
SetAttributes=函数(el、属性){
/**
*@author(@colecm)
*@method simple for in-loop可帮助以编程方式创建元素
*@param{object}el-HtmleElement属性正在添加到
*@param{object}attrs-具有所需属性的键/值的对象文字
*@example SetAttributes(信息{
*“id”:“utswFormInfo”
*“类”:“我的类名”
* });
*/
"严格使用",;
var键;
for(输入属性){
if(属性hasOwnProperty(键)){
el.setAttribute(key,attrs[key]);
}
}
返回el;
};
/** \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/ **/
GetScript=函数(url,完整路径){
/**
*@author(@colecm)
*@version 1.0.4
*@requires Swlxws.SetAttributes,Swlxws.Observer
*@method向页面动态添加脚本标记。
*@param{string}url-相对路径和文件名-不包括扩展名
*@param{string}fullPath-绝对路径
*@example GetScript('myLocalScript');
*@example GetScript(“”,'https://www.google-analytics.com/analytics.js');
*/
"严格使用",;
函数onLoad(事件){
var结果;
如果(event.type==='load'){
结果=1;
}否则{
结果=-1;
}
Observer.publish('get-script-onload-complete'{
成功:结果,
eventData:事件
});
}
var JSPATH='/js/',
/*或者你把js文件放在哪里*/
el=document.createElement('script'),
属性={
是的,
src:null,
键入:“text/javascript”
};
/**寻找一个基于字符串、协议无关的js文件url*/
如果(完整的类型)