2

我正在尝试为我正在制作的新网站缩小一些网络代码的范围。我发现这个答案似乎是我正在寻找的,但我无法让它工作:https ://stackoverflow.com/questions/13483194#13483649

我正在尝试非 jQuery 答案,但我似乎遗漏了一些东西,因为当我将页面加载到 Firefox 中并按下按钮时它没有做任何事情。我正在使用 phpDesigner 软件,将复制粘贴到 .htm 文件中,然后在 Firefox 中运行。

这是我做的代码:

JavaScript:

// https://stackoverflow.com/a/5158301/74757
function getParameterByName(name, path) {
    var match = RegExp('[?&]' + name + '=([^&]*)').exec(path);
    return match && decodeURIComponent(match[1].replace(/\+/g, ' '));
}

var hiddenElHtml = document.getElementsByClassName('hidden_elem')[0].innerHTML.replace('<!--', '').replace('-->', '');

var divObj = document.createElement('div');
divObj.innerHTML = hiddenElHtml;

var itemAnchor = divObj.getElementsByClassName('itemAnchor')[0];
var href = itemAnchor.getAttribute('href');

var fbId = getParameterByName('h', href);

alert(fbId);

HTML:

<code class="hidden_elem" id="ukftg4w44">
    <!-- <div class="mtm mlm">
     ...
      ....
    <span class="itemLabel fsm">Unfriend...</span></a></li>
    <li class="uiMenuItem" data-label="Report/Block...">
    <a class="itemAnchor" role="menuitem" tabindex="-1" href="/ajax/report/social.php?content_type=0&amp;cid=1352686914&amp;rid=1352686914&amp;ref=http%3A%2F%2Fwww.facebook.com%2F%3Fq&amp;h=AfjSxEzzdTSrz-pS&amp;from_gear=timeline" rel="dialog">
    <span class="itemLabel fsm">Report/Block...</span></a></li></ul></div>
     ....
    ...
    </div> -->
</code>

<button onclick="getParameterByName()">Try it</button>
4

1 回答 1

0

你几乎完成了,看看这个小提琴,它的工作原理:http:
//jsfiddle.net/promatik/qyeWT/

我把你所有的代码放在一个函数中,getAttributes()我添加了另一个属性只是为了更好地测试你的问题:

var fbId = getParameterByName('h', href);
var cId = getParameterByName('cid', href);

document.getElementById('parameter-h').innerHTML  = fbId;
document.getElementById('parameter-cid').innerHTML  = cId;

alert(fbId + "\n" + cId);

HTML:

<div><span>HREF = </span><span id="parameter-h"></span></div>
<div><span>CID = </span><span id="parameter-cid"></span></div>
<button id="tryagain">Try it</button>

该按钮有一个事件监听器:

document.getElementById("tryagain").addEventListener("click", getAttributes, false); 
于 2013-02-04T18:16:21.667 回答