php+js 分享博客的功能
来源:互联网 发布:linux system 输出 编辑:程序博客网 时间:2024/06/15 19:55
一开始,我是这么做的,把要分享的博客内容放到a标签的value中,然后通过点击事件传值this.getAttribute(‘value),传给transMit 函数;
<a href="javascript:void(0);" id="blog-share-add-<?=$arResult["Post"]["ID"]?>" value="<?=$arResult["Post"]["textFormated"]?>" onclick="transMit('分享自//<?=CUser::FormatName($arParams["NAME_TEMPLATE"], $arTmpUser, ($arParams["SHOW_LOGIN"] != "N" ? true : false))?>:'+this.getAttribute('value'),event)"></a>
然后,产品小哥上网上随便截了段话就发微博测试了,下面是那段话的内容。你应该发现了,他复制的是段带连接的文字;于是乎,这段文字在我上面的a标签value中就炸了;
房屋建筑工程大体操作流程:<br>1、<a href="https://www.baidu.com/s?wd=%E5%8F%91%E6%94%B9%E5%A7%94&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1Y4n1R3uHnkuHIBPvcsuAc10ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6KdThsqpZwYTjCEQLGCpyw9Uz4Bmy-bIi4WUvYETgN-TLwGUv3En1b1PW0vPjc3" target="_blank">发改委</a>立项<br>2、规划委审批<br>3、公开招标或<a href="https://www.baidu.com/s?wd=%E7%9B%B4%E6%8E%A5%E5%8F%91%E5%8C%85&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1Y4n1R3uHnkuHIBPvcsuAc10ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6KdThsqpZwYTjCEQLGCpyw9Uz4Bmy-bIi4WUvYETgN-TLwGUv3En1b1PW0vPjc3" target="_blank">直接发包</a><br>4、办理开工许可证<br>5、进场<br>6、分部分项验收<br>7、整体验收<br>8、建委备案<br>9、结算
1. 解决方法:我首先想到的是php 的 str_replace替换文字中的双引号;测试了不行;如果把微博中的单双引号分别替换成其他特殊字符串,像‘/’在url中经常替换成”%2F”一样,然后在通过js再替换回来,感觉应该可以,但是太麻烦;
2. 我想既然把用户的内容放到代码属性中很麻烦,而且有一定危险性(恶意脚本注入参考光光:代码编写中会遇到的安全性问题);于是,我单独加了一个标签元素来存储信息,然后通过参数传递这个标签元素的ID,这样问题就解决了
代码:
<span class="feed-inform-share"> <span id="message-<?=$arResult["Post"]["ID"]?>" style="display:none;"><?=$arResult["Post"]["textFormated"]?></span> <a href="javascript:void(0);" id="blog-share-add-<?=$arResult["Post"]["ID"]?>" onclick="transMit('分享自//<?=CUser::FormatName($arParams["NAME_TEMPLATE"], $arTmpUser, ($arParams["SHOW_LOGIN"] != "N" ? true : false))?>:','message-<?=$arResult["Post"]["ID"]?>',event)"></a></span>
function transMit(value,id,evt){ var e=(evt)?evt:window.event; var body = document.getElementsByClassName("template-bitrix24")[0]; var windowSize = BX.GetWindowInnerSize(); var top = parseInt(windowSize.innerHeight*0.33); BX("transmit_box").style.top = top + 'px'; BX.show(BX("transmit_box")); var mask = BX.create("DIV", { "attrs": {"id": "transmit_box_mask"}, // "children": // [ // BX.create("SPAN", // { // "attrs": {"class": "bx-crm-edit-content-location-description"}, // "text": "<?= CUtil::JSEscape($arResult['PAY_SYSTEM_ID_TITLE']) ?>" // }) // ] } ); body.appendChild(mask); if (window.event) { e.cancelBubble=true; } else { //e.preventDefault(); e.stopPropagation(); } BX("POST_MESSAGE").innerHTML = value+BX(id).innerHTML; BX.bind(BX("transmit_box_mask"),"click",function(){ BX.hide(BX("transmit_box")); body.removeChild(BX("transmit_box_mask"));}); }
阅读全文
0 0
- php+js 分享博客的功能
- js分享功能
- js分享功能
- JS分享功能
- js实现分享功能
- JS实现php的trim功能
- 好的博客分享
- 百度分享插件 js异步添加的内容如何实现分享的功能
- iOS的分享功能
- 系统的分享功能
- 推荐几个提高访问量的博客插件:为你的博客添加分享按钮、智能关联推荐功能
- 用ajax php html js mysql 实现博客的基本功能
- 【博客分享】优秀的有趣的博客
- 【博客分享】优秀的有趣的博客
- 【博客分享】优秀的有趣的博客
- 【博客分享】优秀的有趣的博客
- 【博客分享】优秀的有趣的博客
- 【博客分享】优秀的有趣的博客
- JSON.stringify()详解
- petalinux更改网络IP地址和MAC地址(一)
- class path resource [spring.xml] cannot be opened because it does no exist;
- [centos] yum 源更新
- SpringBoot系列—docker安装使用(windows 7)
- php+js 分享博客的功能
- QQ侧滑删除
- 如何使用 Google Cartographer SLAM 演算法來建地圖
- 写给Android开发者看的『微信小程序和Android开发的对比』
- easyui的模糊查询
- JS使用getComputedStyle()方法获取CSS属性值
- Linux内核设计与实现之读书笔记(一)
- 从一个简单数据分析看机器学习的概念
- BIOS