在 FBJS/Facebook 中使用 getElementById().getValue 时出现问题!

发布于 2024-10-21 19:31:02 字数 331 浏览 3 评论 0原文

我正在使用此代码在 Facebook 中生成隐藏的 HTML 代码:

echo "<div id=\"y257y\" style=\"display:none;\">".$fdesc."</div>";

并且,我尝试使用以下代码将此元素返回到 JS 中

newVal=document.getElementById('y257y').getValue();

但是,我收到错误: Undefined

任何人都可以帮助我吗?

谢谢。

- 阿山

I am using this code to generate hidden HTML code in Facebook :

echo "<div id=\"y257y\" style=\"display:none;\">".$fdesc."</div>";

And, I am trying to get this element back in JS using the following code

newVal=document.getElementById('y257y').getValue();

But, I am getting an error: Undefined

Can anyone kindly help me out ?

Thanks.

-
ahsan

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

假面具 2024-10-28 19:31:02

而不是:

newVal = document.getElementById('y257y').getValue();

尝试使用:

newVal = document.getElementById('y257y').innerHTML;

您是否使用任何 JavaScript 库,例如 jQuery 或 Prototype?如果您使用 jQuery:

newVal = $('#y257y').html();

其他建议:

使用隐藏的表单元素:

echo "<input type=hidden id=y257y value=\"$fdesc\">";

在 JavaScript 中:

newVal = document.getElementById('y257y').value;

或者只是输出

echo "<script>newVal = \"$fdesc\";</script>";

并且无需在 DOM 中查找值 – 它已经存在在 JavaScript 中。

Instead of:

newVal = document.getElementById('y257y').getValue();

try using:

newVal = document.getElementById('y257y').innerHTML;

Are you using any JavaScript library, like jQuery or Prototype? If you're using jQuery:

newVal = $('#y257y').html();

Other suggestions:

Use hidden form element:

echo "<input type=hidden id=y257y value=\"$fdesc\">";

and in JavaScript:

newVal = document.getElementById('y257y').value;

Or just output a <script> tag:

echo "<script>newVal = \"$fdesc\";</script>";

and there's no need to find the value in the DOM – it's already in JavaScript.

二货你真萌 2024-10-28 19:31:02

尝试使用文本区域?因为如果你真的很幸运的话,至少可能有一个 getValue 方法:

$fdesc = str_replace('<', '<', $fdesc);
$fdesc = str_replace('>', '>', $fdesc);

echo "<textarea id=\"y257y\" style=\"display:none;\">".$fdesc."</textarea>";
newVal=document.getElementById('y257y').getValue();
newVal = newVal.replace(">", ">")
newVal = newVal.replace("<", "<")

但有些事情告诉我这对你不起作用,facebook 可能不喜欢它。
这样做似乎更容易:

$fdesc = <<<EOD
 <div>Here is your html</div>
 <p>And some more </p>
EOD;

$fdesc = str_replace("'", "\'", $fdesc);   //Escape single quotes
$fdesc = str_replace("\n", "";', $fdesc);   //Get rid of line breaks

 echo "var fdesc = '$fdesk';";

Try using a textarea? Since at least that may have a getValue method if you are really lucky:

$fdesc = str_replace('<', '<', $fdesc);
$fdesc = str_replace('>', '>', $fdesc);

echo "<textarea id=\"y257y\" style=\"display:none;\">".$fdesc."</textarea>";
newVal=document.getElementById('y257y').getValue();
newVal = newVal.replace(">", ">")
newVal = newVal.replace("<", "<")

But something tells me that is not going to work for you, facebook may not like it.
Seems easier just to do this:

$fdesc = <<<EOD
 <div>Here is your html</div>
 <p>And some more </p>
EOD;

$fdesc = str_replace("'", "\'", $fdesc);   //Escape single quotes
$fdesc = str_replace("\n", "";', $fdesc);   //Get rid of line breaks

 echo "var fdesc = '$fdesk';";
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文